2020年4月

$builder = Yii::app()->db->schema->commandBuilder; // 创建builder对象
$command = $builder->createMultipleInsertCommand('{{umeng_message}}', array( // umeng_message为数据库表
    array(// 格式为:'字段' => '值', 不包括主键ID,一个array为一条记录
        'msg_id' => $android['data']['task_id'],
        'detail' => $android['data']['json'],
        'msg_detail_id_fk' => $detailId
    ),
    array(
        'msg_id' => $android['data']['task_id'],
        'detail' => $android['data']['json'],
        'msg_detail_id_fk' => $detailId
    ),
));
$command->execute(); // 执行成功返回true

一般识别爬虫的方法是通过 UserAgent,这种办法最直接,但也很容易伪造,先不管这个了。

实现在 Nginx 中使用 map 指令来匹配一个变量:

map $http_user_agent $is_bot {
    default 0;
    ~[a-z]bot[^a-z] 1;
    ~[sS]pider[^a-z] 1;
    'Yahoo! Slurp China' 1;
    'Mediapartners-Google' 1;
}

在这里我们生成了一个名为 $is_bot 的变量,该变量默认值是 0 ,如果匹配到上述 4 种正则表达式的情况后,值就变成1。你可以继续往 map 中添加新的表达式规则。
然后在 location 中使用该变量:

location / {
    error_page 418 =200 @bots;
    if ($is_bot) {
       return 418;
    }
    proxy_pass http://tomcat_for_normal_visitors;
}

@bots 的定义:

location @bots {
    proxy_pass http://tomcat_for_bot;
}

当判断当前请求是爬虫的时候,返回 418 错误码。
通过 error_page 将 418 错误码改为 200 (正常请求响应码),然后进入 @bots 这个 location 进行下一步处理。@bots 中将请求反向代理到你指定的后端应用。

如此便可将正常的用户访问和爬虫访问独立开来,使二者不会互相影响。

首页你必需拿到主机(就是在主机上操作,不是远程连接上可以操作的)
很多时候我们都会忘记Linux root 用户的口令,下面就教大家如果忘记root口令怎么办

第1步:开机后在启动菜单上定位到系统所启动的选项上,按“e”进入编辑。
第2步:在linux16这行按END键在后面输入“ rd.break console=tty0”,然后按“ctrl+x“,进入到了系统的紧急求援模式
第3步:依次输入以下命令:

#mount –o remount,rw /sysroot
#chroot /sysroot
#passwd

输入新的root密码,2次确认,然后继续

#touch /.autorelabel
#exit
#exitroot

输完以后,系统会重启,输入我们刚才配置的密码登录就行
至此,密码破解完毕

那么怎么来预防别人通过这种方式来破密呢,就是给系统加上第二首锁:
使用 grub2-mkpasswd-pbkdf2 命令生成hash密码
编辑文件/etc/grub.d/文件夹下任意文件,通常编辑10_linux

在末尾添加如下几行:

cat <<EOF
set superusers="admin"
password_pbkdf2 admin xxxxxxxxxx
EOF

xxxxxx就是hash密码,或者用文明密码就是换成
password admin 123456这样

更新grub配置后并重启

#grub2-mkconfig -o /boot/grub2/grub.cfg
#reboot

当你重启过后想输入e编辑启动脚本时,要求认证输入上方的用户名admin和密码123456,才能进入,没错我们再上一把锁,不过有时候也许会坑自己,除非你的确需要这样做

不过这样做了,也有第三招来破密,这里就不写了