鉴于百度App“截流”第三方网站评论的流氓行为,闹着玩下网表示强烈谴责。除了谴责外,也采取了这个“以卵击石”的行动,也记录下学习实践过程。
百度App会对网站的评论框等功能进行劫持,这可能影响到网站的正常运行。因此,要在网站中针对百度App访客用户,做个屏蔽或提示措施是一项有益的操作。
笔者是苹果iOS端的百度App,测试其浏览器UserAgent信息如下:
Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 SP-engine/2.80.0 main%2F1.0 baiduboxapp/13.42.0.11 (Baidu; P2 16.6.1) NABar/1.0 themeUA=Theme/dark
我们根据百度App的UA做个识别,也就是检测到“baiduboxapp”客户端就禁止访问,把以下代码添加到主题目录下的 functions.php 文件即可,提示部分可以自行修改:
function block_baiduboxapp() {
$user_agent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($user_agent, 'baiduboxapp') !== false) {
// 显示提示信息
die('您当前使用的是百度App,因其未经授权,擅自增加其底部评论框,本站不得不禁止其访问,如您需访问本站请更换别的浏览器,谢谢理解。');
}
}
add_action('wp', 'block_baiduboxapp');
但这样做体验不太好,相当于抵制百度的所有客户端产品了,毕竟百度也有一些良心产品,建议改成正常访问,多个提示即可。
function remind_baiduboxapp() {
$user_agent = $_SERVER['HTTP_USER_AGENT'];
// 检测是否是百度App用户
if (strpos($user_agent, 'baiduboxapp') !== false) {
// 显示提示信息
echo '<div class="baiduboxapp-warning">您当前使用的是百度App,其底部评论框不属于本站,如需评论请至文末,谢谢理解。</div>';
}
}
add_action('wp', 'remind_baiduboxapp');
另外百度还有个App叫“百度浏览器”,和“百度“名字的App是不同的,一年多没更新了,测试是没有底部评论框,应该做个过滤才对。
百度浏览器的UA:
Mozilla/5.0 (iPhone; CPU iPhone OS 16_6_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 SP-engine/2.37.0 main%2F1.0 matrixstyle/0 flyflow/5.21.1.30 info baiduboxapp/5.21.1.30 (Baidu; P2 16.6.1) NABar/1.0 themeUA=Theme/default
对比主要是增加了个“matrixstyle/0 flyflow/5.21.1.30 info”这段代码。通过排除“matrixstyle/0”或“flyflow”这段特征码应该可以做好过滤。同时做了个通知样式,红底白字,如主图。
function add_custom_styles() {
echo '<style>
.baiduboxapp-warning {
background-color: #ff0000;
color: #ffffff;
padding: 10px;
margin: 10px 0;
border-radius: 5px;
}
</style>';
}
add_action('wp_head', 'add_custom_styles');
// 以上是样式
function baiduboxapp_reminder() {
$user_agent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($user_agent, 'baiduboxapp') !== false && strpos($user_agent, 'matrixstyle/0') === false) {
echo '<div class="baiduboxapp-warning">如您使用百度App访问本站,其底部评论框由百度掌控。我们强烈谴责此行为,但您仍可继续访问。本站评论框位于文末,请注意正确甄别。</div>';
}
}
add_action('wp', 'baiduboxapp_reminder');
也可以单独将“baiduboxapp-warning”这段样式单独放到css文件中,有的主题支持设置,比如Begin主题,是放到外观-主题选项-定制风格-自定义样式中,再简化下:
.baiduboxapp-warning {
background-color: #ff0000;
color: #ffffff;
padding: 10px;
}
不过这个样式不太好看,而且要下拉才能完整显示,底下还有空白的地方,调整样式都没生效。如果用弹窗的方式要加载脚本,而且体验又不太好。
最后做个悬浮样式,做个提示条位于其他元素之上,固定放在页面底部,也会更明显一点。
.baiduboxapp-warning {
background-color: #FF0000;
color: #FFFFFF;
text-align: center;
padding: 10px;
position: fixed;
bottom: 0;
left: 0;
width: 100%;
z-index: 9999;
}
可以根据您网站的外观调整样式。
通过屏蔽或提示百度App用户,可以提高网站的安全性,确保用户体验更加良好。但请注意,尚未确定屏蔽或提示百度App用户是否会影响百度收录,闹着玩下网在屏蔽百度蜘蛛前,也可能因为发表关于百度的负面评论,似乎被K了,因此在实施之前请仔细考虑。