针对百度App客户端,WordPress网站如何屏蔽或仅提示?

nZone 2023年10月1日更新于1 年前 共1187字 50行代码 预计6分钟 评论 136

鉴于百度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是不同的,一年多没更新了,测试是没有底部评论框,应该做个过滤才对。

百度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;
}
百度App用户访问提示

不过这个样式不太好看,而且要下拉才能完整显示,底下还有空白的地方,调整样式都没生效。如果用弹窗的方式要加载脚本,而且体验又不太好。

最后做个悬浮样式,做个提示条位于其他元素之上,固定放在页面底部,也会更明显一点。

.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用户,可以提高网站的安全性,确保用户体验更加良好。但请注意,尚未确定屏蔽或提示百度App用户是否会影响百度收录,闹着玩下网在屏蔽百度蜘蛛前,也可能因为发表关于百度的负面评论,似乎被K了,因此在实施之前请仔细考虑。

weinxin
公众号
闹着玩下网
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: