2011-06-18 18 views
0

私は\ ...アップロードフォームのテキストフィールドに入力されるように、<、>、 '、「などの文字を禁止すべきか?テキストがブログにPHP経由で送信されます。禁止する文字

を私はいくつかの文字が問題を引き起こす可能性があるとサーバー「/危害をハック」するために使用することができることを聞いた。制限すべき文字?あなたの入力のための

感謝を。 マイケル

+0

文字をブラックリストに登録しないでください。それらをホワイトリストに入れる。 –

+0

申し訳ありませんが、それはどういう意味ですか? – Michael

+0

http://en.wikipedia.org/wiki/Whitelist –

答えて

1

は何かを制限する必要はありません。問題はあなたがにすべてのユーザ入力をにする必要があることですこの特定の種類のデータ(可能なHTML)は、ページの一部として表示する前にすべてのユーザー提供データにhtmlspecialcharsを使用するのに必要で十分です。

は、フォームがpost-bodyという名前のテキストエリアを持っている場合たとえば、あなたは(例えば$_REQUEST['post-body']を持つ)ユーザー入力を受け取る必要があり、そのまま-(データベースに保存警告:SQLから身を守るために使用mysql_real_escape_stringPDOこの段階で注入!)。時間がそれを表示するために出たとき、あなたは、データベースから取得し、

echo htmlspecialchars($postBody); 

ようなもので、それを印刷したデータのサニタイズにいくつかのより多くの背景についてthis questionを参照してください。

0

ユーザデータを出力するたびにユーザデータをhtmlspecialcharsでサニタイズして、XSS-attacksを避ける必要があります。

また、SQLクエリのユーザーデータを操作するには、PDOと準備済みの文を使用するか、を回避する関数mysql_real_escape_stringを使用します。 Example

+0

素晴らしい入力をいただきありがとうございます。 – Michael

0
<? $string = str_replace("\\\"", "\"", $string); 
     $string = htmlspecialchars($string); 
     $string = preg_replace("/\r\n|\n|\r/", "<br>", $string); ?> 

<input type = "text" name = "string" id = "string" value = "<?=$string?>"> 
関連する問題