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

wow*_*wow 3 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"
Run Code Online (Sandbox Code Playgroud)

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

kar*_*m79 13

我喜欢@Nerdling的答案,但如果你有一个很长的需要阻止的用户代理列表,它会有所帮助:

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

更好的是:

$badAgents = array('fooAgent','blahAgent', 'etcAgent');
if(in_array($_SERVER['HTTP_USER_AGENT'],$badAgents)) {
    exit();
}
Run Code Online (Sandbox Code Playgroud)

  • 无论如何,对于任何超过2个用户代理,这将是首选方法. (3认同)