SQLクエリに似たテキストを含むファイルを保存しようとすると、500 Internal Server Errorが発生します。だから、ModSecurityは、それをブロックしている:.htaccess経由でmodsecurityルールを削除する
[client xxx.xxx.xxx.xxx] ModSecurity: Access denied with code 500 (phase 2). Pattern match "(insert[[:space:]]+into.+values|select.*from.+[a-z|A-Z|0-9]|select.+from|bulk[[:space:]]+insert|union.+select|convert.+\\\\(.*from)" at ARGS:description. [file "/usr/local/apache/conf/modsec2.user.conf"] [line "359"] [id "300016"] [rev "2"] [msg "Generic SQL injection protection"] [severity "CRITICAL"] [hostname "xxxxxxxxxxxxx.net"] [uri "/app/3/admin/modules/product/product_a.php"] [unique_id "TzvCxkPj2kkAAH4WkMwAAAAE"]
だから私は
<IfModule mod_security.c>
SecFilterRemove 300015
SecFilterRemove 300016
</IfModule>
/フォルダ/アプリ/ 3 /管理/モジュール/製品上の.htaccessファイルを作成します。しかし、これはどちらかの問題を解決していません。私はまだApacheのログファイルにログエントリを持つ500のコードを取得しています。
これはなぜ機能しないのでしょうか?
まず最初に、これを避ける必要がありますか?これは本当にトラブルを求めています。 – Oldskool
このファイルは、データをデータベースに追加するPOST要求を処理します。 POST要求にはSQL文が含まれている可能性がありますが、これを回避する別の方法はありますか? – Straseus
phpMyAdminにも同じ問題があります。彼らがそれを回避する方法を見つけることは面白いだろう - 編集:ああ、そうではありません。私の答えに編集を参照してください –