1

PHP スクリプトに与えられたデータをサニタイズする最も安全な方法を知りたいのですが、これは私が思いついた関数です。安全に使用できると思いますか?

function santatizeName($data)
{
    $data = filter_var($data, FILTER_SANITIZE_STRING); 
    $data = preg_replace('/[^a-z]/i','',$data); //Removes everything but letters.
    $data = ucfirst($data); //Capatilizes first letter.

    return $data;
}

PHP セキュリティに不慣れな方のフィードバックをお待ちしております。

4

3 に答える 3

2

ほとんどのフィールド、特に名前フィールド (Mr. O'Hara、Mrs. Smith-Meyer、および Mr. Möller) ですべての文字を使用する必要があることを考えると、入力サニテーションの概念は実際には文字列では役に立ちません。ほとんどすべてのキャラクターは、他のコンテキストでは危険です。文字列データがコンテキストを変更するたびに、文字列データを適切にエスケープ/エンコードすることを検討する必要があります (データベースクエリ、シェルコマンド、または動的に生成された HTML/CSS/JS/その他への入力など)。文字列の連結によって SQL を構築する代わりに、準備済みステートメントなどの DB アクセス用の安全な API を使用します。

そうは言っても、OWASP PHP フィルターまたはOWASP ESAPI for PHP が役立つ場合があります。

于 2013-01-16T01:05:27.547 に答える
1

サニタイズ フィルターに関する次の php ドキュメントを確認することをお勧めします。

http://php.net/manual/en/filter.filters.sanitize.php

http://php.net/manual/en/ref.filter.php

于 2013-01-16T00:57:00.437 に答える
0

http://htmlpurifier.org/をチェックしてください。サニタイズだけではありません。

于 2013-01-16T01:00:39.647 に答える