3

私のサーバーは Linux サーバーで、リセラーは私のものです。だから私もWHMパネルに到達できます。

GET データが次のようになると:

a.php?url=http://www.domain.com

return 403 禁止。

しかし、データが次のようになった場合:

a.php?url=www.domain.com

それは働いています。

したがって、http://エラーが発生します。どうすれば修正できますか?

また、これは 403 Forbidden を返しています:

a.php?url=http%3a%2f%2fwww.domain.com

ありがとう。

4

4 に答える 4

5

これは間違いなくmod_security CoreRulesの 1 つです。以前のホストでもまったく同じ問題が発生しました。ただし、ルール名は覚えていません。

コア ルールのバージョンを調査する必要があります。2.1.1 が最新であり、その独特のフィルターが緩和された可能性があります。更新または再構成が役に立たない場合は、URL パラメーターを base64_encode() する必要があります (単純なエンコーディングは mod_security によって盗聴されます)。

SecFilterDebugLog /var/log/apache2/modsec_log
SecFilterDebugLevel 4

mod_security のデバッグ ログを有効にします。これにより、実際に問題を引き起こしたルールを特定できます (無効にする場合 (推奨))。 http://www.modsecurity.org/documentation/modsecurity-apache/1.9.3/modsecurity-manual.html#07-logging

于 2011-02-15T03:09:26.303 に答える
0

re:404-おそらく、クエリ文字列をどこかのパスに書き換えていて、AllowEncodedSlashesがオンになっていないのですか?

于 2011-02-14T15:54:43.893 に答える
0

mod_security の 10_asl_rules.conf がこのエラーの原因です。

.htaccess がその URL 内の何かを検出し、禁止されたヘッダーを送信していることです。

于 2011-02-21T10:13:01.470 に答える
0

有効になるようにクエリ文字列をエンコードする必要があります。urlencode()

于 2011-02-09T22:02:04.137 に答える