我正在尝试编码If (the query contains any common attack terms, over 80 characters etc) { 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);
}
我知道各种插件会发送多次登录尝试和锁定等警告。我希望对SQLi尝试做同样的事情
更新:事实证明,这实际上是一个有用的插件 - 更好的WP安全性在不良登录和其他可疑业务发生时向您发送电子邮件。也没有人回答我的问题,似乎是一群精英主义的咆哮......感谢@Rook和@Thawab!
我建议在脚本中使用 http://phpids.org/,因为它可以检测到更多攻击。
如果你正确地保护你的网站免受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
}