2012-04-25 11 views
0

この関数は、誤った入力の大部分からアプリを保存しますか? ユーザー入力は数字のみのテキストである必要があります。このサニタイズ機能はほとんどの攻撃から保護されますか?

function sanitize($data){ 
    $data = strip_tags($data); 
    $data = htmlspecialchars($data,ENT_QUOTES); 
    $data = filter_var($data,FILTER_SANITIZE_STRING); 
    $data = filter_var($data,FILTER_SANITIZE_STRING,FILTER_FLAG_STRIP_LOW); 
    return $data;   
} 

P.追加情報が必要ですか?

+1

この質問に「sql-injection」とタグを付けたので、DB接続に基づいて適切な関数を使用する必要があります。例えばmysql_real_escape_stringを使用するか、またはプリペアドステートメントを使用してください。英数字を残す場合は、正規表現を使用して他の文字を取り除くことができます。 – feeela

+1

[究極のクリーン/セキュア機能]の複製が可能(http://stackoverflow.com/questions/4223980/the-ultimate-clean-secure-function) –

+0

Ok。ありがとうございました。確かめます。 –

答えて

3

「ちょうどサニタイズ」というデータはありません。特定のユースケースに合わせて適切にデータをサニタイズする必要があります。それは、データベースに送信するか、ファイル名を使用するか、ユーザーにエコーするかどうかなどです。あなたのデータを完全に停止する試みは、完全な停止をデータの消毒というものがないので、失敗に終わる。それは意味をなさない。 「サニタイズ」データの概念は、データをサニタイズするコンテキストと組み合わされた場合にのみ意味があります。

特に、データベースに入力するためにデータをサニタイズする場合(明確ではない - 質問には特にデータベースはありませんが、 "sql-injection"タグがあります)、それを正しく行うために使用しているデータベース接続。

+0

まあ私は正確な重複していない場合は、このqite saneの回答をupvoteだろう –

+0

これは主にデータベースに挿入するためです。 –

関連する問題