4

Codeigniter PHP フレームワークを使用しています。構成ファイルの 1 つで、許可される URL 文字を設定できます。

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-'; 

したがって、この URL にアクセスしようとすると、 website.com /controller/%22quotedString%22 、許可された文字に引用符を追加しない限り、エラーが発生します。

$config['permitted_uri_chars'] .= '"'; 

私のアプリケーションでは、実際には URL 内のすべての奇妙な文字を許可する必要がありますが、ハードコーディングされた膨大な文字リストは必要ありません。Codeigniter は、すべての文字を許可しないように警告します。

/*
|--------------------------------------------------------------------------
| Allowed URL Characters
|--------------------------------------------------------------------------
|
| As a security measure you are STRONGLY encouraged to restrict URLs to
| as few characters as possible.  By default only these are allowed: a-z 0-9~%.:_-
|
| Leave blank to allow all characters -- but only if you are insane.
|
| DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!
|
*/

彼らは、すべての文字を許可することのセキュリティ上の問題が何であるかを正確に述べていません. それで、問題は何ですか?

4

2 に答える 2

4

URL で考えられるすべての文字を許可しても、固有のセキュリティ リスクはありません。セキュリティの問題は、アプリケーションがそれらをどう扱うかによって異なります。

于 2012-08-17T22:06:25.557 に答える
1

この回答を参照してください。ユーザーがやりたいことを何でもできるようにした場合に、ユーザーができることをほぼ説明しています:) 基本的に、URL に「<」と「」を許可しないことで、XSS と SQL インジェクションから身を守ることができます。ただし、適切にエスケープしてすべてを制御する場合、URL 内のすべての文字を許可しても問題はないと思います。

于 2012-08-17T22:07:57.773 に答える