0

ユーザーによるテキスト入力を検証する関数を作成しています。入力テキストにはさまざまな用途があるため、ユーザーが Web サイトの任意の部分にテキストを入力できるようにすることのセキュリティ上の懸念に関して、関数ができるだけ多くの領域をカバーすることを望みます。私は現在、必要に応じてさまざまな入力を検証するさまざまなコードを使用しており、このセキュリティ部分を 1 つの関数に統合し、正規表現 (電子メール、電話、パスワードの検証) を Web サイト全体で使用できる別の関数に統合しようとしています。

これに関連して質問があります。

データベース内の情報に対して入力をチェックするときに、ユーザー入力をクリーンアップするために、この少しのフィルタリングを使用します。

$find = strtoupper($find); 
$find = strip_tags($find); 
$find = trim ($find);
$_SESSION['find'] = $find;
$keywords_array = explode(' ', $find);

strip_tags上記のフィルタリングを適用する前に、次のように入力を検証することは理にかなっていますか?

if (preg_match("#\bscript\b#",$_POST['search']))
        {
            // Get user ip
            // Log client details to DB
            $GLOBALS['errorFocus'] = "autofocus class='thisInputIsError'";
            $GLOBALS['searchError'] = '<p>Your IP has been logged!</p>';
        }

もしそうなら、他にどのタグに注意する必要がありますか?

また、まとめようとしている機能に関して、一般的に他にどのようなことに注意する必要がありますか?

これをカバーするいくつかの良いチュートリアルへのリンクも素晴らしいでしょう:)

ありがとうございました!

4

1 に答える 1

3

php にはフィルタリングと検証が組み込まれています。http: //php.net/manual/en/book.filter.phpを参照してください。カスタム フィルターの HTML コンテンツが必要な場合は、 HTMLpurifierまたは tidy も検討してください。

于 2012-04-12T10:00:11.407 に答える