php - 如何使用php阻止一些http用户代理

标签 php user-agent

有没有办法通过 php 脚本阻止一些用户代理? mod_security 示例

SecFilterSelective HTTP_USER_AGENT "Agent Name 1"
SecFilterSelective HTTP_USER_AGENT "Agent Name 2"
SecFilterSelective HTTP_USER_AGENT "Agent Name 3"

我们也可以通过示例使用 htaccess 或 robots.txt 阻止它们,但我想要在 php 中。任何示例代码?

最佳答案

我喜欢@Nerdling 的回答,但如果它有帮助,如果您有很长的用户代理列表需要阻止:

$badAgents = array('fooAgent','blahAgent', 'etcAgent');
foreach($badAgents as $agent) {
    if(strpos($_SERVER['HTTP_USER_AGENT'],$agent) !== false) {
        die('Go away');
    }
}

更好的是:
$badAgents = array('fooAgent','blahAgent', 'etcAgent');
if(in_array($_SERVER['HTTP_USER_AGENT'],$badAgents)) {
    exit();
}

关于php - 如何使用php阻止一些http用户代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1357983/

相关文章:

php - 我应该先尝试什么脚本?

php - 匹配最佳相似数组元素

regex - 用户代理字符串解释

FFMPEG 忽略设置用户代理或其他 header 的尝试

java - GWT Browser在Client中的区别

php - 如何在 sql 查询 VALUES 中包含分号?

php - 在生产环境中重置 Laravel 迁移

php - 在 Windows 的后台运行 PHP "exec()"?

iphone - 什么是 iOS 6 用户代理字符串?

html - 我是否应该将所有小于 768px 的手机都视为触摸设备?