创建在执行shady DROP之类的查询时触发的PHP函数

时间:2012-07-01 00:53:45

标签: php security warnings

我正在尝试编写“If(查询包含任何常见的攻击术语,超过80个字符等){execute function}”

我知道preg_replace允许使用字符,但有一个函数可以禁止设置字符串或如何构建类似的东西:

if(isset( contains['DROP, OR, 1-1, etc]) ) {

$message = $_SERVER["REMOTE_ADDR"]; 
$message = $_SERVER[""];
mail('admins@website.com', 'Shady Query Going on', $message);

$message = $_SERVER["REMOTE_ADDR"]; $message = $_SERVER[""]; mail('admins@website.com', 'Shady Query Going on', $message);

我知道各种插件会发出多次登录尝试和锁定等警告。我希望对SQLi尝试做同样的事情

更新:事实证明这实际上是一个有用的插件 - Better WP Security会在登录错误和其他阴暗业务时向您发送电子邮件。没有人回答我的问题,似乎是一堆精英咆哮...... 感谢@Rook和@Thawab tho!

2 个答案:

答案 0 :(得分:1)

我建议您在脚本中使用http://phpids.org/,因为它可以检测到更多攻击。

答案 1 :(得分:-1)

如果您正确保护您的网站免受SQL注入,您绝对不需要这样做。但是,要实现它......

function checkForBlacklistedTerms($string)
{
    $blacklisted = array('DROP', '--', 'KILL', 'BLAH', 'BLIH');
    foreach($blacklisted as $bl) { 
        if( strpos($string, $bl) !== FALSE ) { 
            return true;
        }
    }
    return false;
}

if( checkForBlacklistedTerms($searchquery) || strlen($searchquery) > 80 )
{
   // warning code goes here
}