-1

「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);

}

さまざまなプラグインが複数回のログイン試行やロックアウトなどの警告を送信することを知っています.SQLi試行でも同じことをしようとしています.

更新: これは実際には便利なプラグインであることが判明しました.Better WP Securityは、不正なログインやその他の疑わしいビジネスが発生したときにメールを送信します. 誰も私の質問に答えませんでした。エリート主義者の暴言のようです... @Rook と @Thawab tho に感謝します!

4

2 に答える 2

1

より多くの攻撃を検出できるため、スクリプトでhttp://phpids.org/を使用することをお勧めします。

于 2012-07-01T04:56:34.087 に答える
-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
}
于 2012-07-01T00:56:19.167 に答える