-2

この関数コードを使用して、GETの保護を強化してみてください。

(例index.php?name=eval(base64_decode(EVIL+CODE))

global $user_ID; 

    if($user_ID) {
                if(!current_user_can('administrator')) {
                        if (strlen($_SERVER['REQUEST_URI']) > 255 ||
                                stripos($_SERVER['REQUEST_URI'], "eval(") ||
                                stripos($_SERVER['REQUEST_URI'], "CONCAT") ||
                                stripos($_SERVER['REQUEST_URI'], "UNION+SELECT") ||
                                stripos($_SERVER['REQUEST_URI'], "base64")) {
                                        @header("HTTP/1.1 414 Request-URI Too Long");
                                        @header("Status: 414 Request-URI Too Long");
                                        @header("Connection: Close");
                                        @exit;
                        }
                }
        }

POSTも保護するために何を追加できますか?(可能な限り-完全なシールは不可能です-私は知っています)

4

1 に答える 1

1

実際には答えではありませんが、コメントするには少し情報が多すぎます。

私はあなたの最後のコメントに基づいてここに私の答えを書きます:

@PeeHaa私は彼らが古いことを知っています。いくつかの脆弱性が修正されたことを私は知っています。私は200以上のサイトを運営しており、そのうちのいくつかは2008年にさかのぼり、プラグインまたはスニペットを使用しています。(phpthumb(古いバージョン)のように)それほど安全ではありません。申し訳ありませんが、この質問がなぜそんなに悪い質問なのかわかりません-アプローチ/コードが悪いため、またはget / postに新しいセキュリティレイヤーを追加するという考えがとても悪いためですか?それがコードの場合、そのアイデアがひどい場合は、誰かがその正しい方法を教えてください。その理由を説明してください。私が今までに得たのは反対票だけです:-)

そのコードはかなり恐ろしいimoであり、使用すべきものではありません。コメントでのみ、WPインストールを保護したいという事実に注意してください。これはあなたの質問/タグから欠落している非常に重要な情報です。

とにかく、コードはかなり恐ろしいと述べたように、しかし私が(恐ろしいコードの問題のために)WPを使ったことがないという事実から、私は判断しません。しかし、私はそのコードについて私が悪いと思うことをあなたに話します:

global $user_ID; 

キーワードの使用はglobal悪い習慣です。可能な場合は、新しいコードについてそのことを覚えておいてください。今そのif声明のために:

何を防ぐべきかはわかりませんがstrlen($_SERVER['REQUEST_URI']) > 255、ある時点でWPまたはプラグインが台無しになっている可能性があります。

stripos($_SERVER['REQUEST_URI'], "eval(")

上記は奇妙に見えるだけではありません。クライアントからのコードを実行する場合にのみ問題になるためです(これは、(非常に間違ったWPプラグインを使用しない限り)決して実行しないことです)。明らかに間違っています。stripos()また0、偽物になる可能性があります。そのため、そのチェックは役に立たないかもしれません。私はワードプレスについて十分に知りませんし、このようなことが可能かどうかもわかりません:

http://your-domain/eval(insert malicious code here)

REQUEST_URI常に。で始まり/ます。エラーが抑制されているヘッダーについて最後にもう1つ。ヘッダーがすでに送信されている場合のエラーを防ぐことができると思います。この場合はどうなりますか。チェックは引き続き機能しますか。

あなたができる最善のことは、WPとプラグインをアップグレードするか、腐ったプラグインを取り除くことです。それが理想的です。しかし、あなたが述べたように、あなたは200のインストールを持っているので、短期的には実行できないかもしれません。したがって、問題を「修正」するには、実際にこのようなコードにソートする必要があるかもしれません。

将来、より良い回答を得るために、質問でより詳細な情報を提供することを検討するかもしれません(たとえば、WPのインストールを予測しようとしているという事実)。また、それはまだ非常に広い質問になると思います。多くの場合、特定の質問をする方がよいでしょう。

于 2012-06-12T08:15:58.623 に答える