私は\ ...アップロードフォームのテキストフィールドに入力されるように、<、>、 '、「などの文字を禁止すべきか?テキストがブログにPHP経由で送信されます。禁止する文字
を私はいくつかの文字が問題を引き起こす可能性があるとサーバー「/危害をハック」するために使用することができることを聞いた。制限すべき文字?あなたの入力のための
感謝を。 マイケル
私は\ ...アップロードフォームのテキストフィールドに入力されるように、<、>、 '、「などの文字を禁止すべきか?テキストがブログにPHP経由で送信されます。禁止する文字
を私はいくつかの文字が問題を引き起こす可能性があるとサーバー「/危害をハック」するために使用することができることを聞いた。制限すべき文字?あなたの入力のための
感謝を。 マイケル
は何かを制限する必要はありません。問題はあなたがにすべてのユーザ入力をにする必要があることですこの特定の種類のデータ(可能なHTML)は、ページの一部として表示する前にすべてのユーザー提供データにhtmlspecialchars
を使用するのに必要で十分です。
は、フォームがpost-body
という名前のテキストエリアを持っている場合たとえば、あなたは(例えば$_REQUEST['post-body']
を持つ)ユーザー入力を受け取る必要があり、そのまま-(データベースに保存警告:SQLから身を守るために使用mysql_real_escape_string
かPDOこの段階で注入!)。時間がそれを表示するために出たとき、あなたは、データベースから取得し、
echo htmlspecialchars($postBody);
ようなもので、それを印刷したデータのサニタイズにいくつかのより多くの背景についてthis questionを参照してください。
ユーザデータを出力するたびにユーザデータをhtmlspecialchars
でサニタイズして、XSS-attacksを避ける必要があります。
また、SQLクエリのユーザーデータを操作するには、PDOと準備済みの文を使用するか、を回避する関数mysql_real_escape_string
を使用します。 Example。
素晴らしい入力をいただきありがとうございます。 – Michael
<? $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?>">
文字をブラックリストに登録しないでください。それらをホワイトリストに入れる。 –
申し訳ありませんが、それはどういう意味ですか? – Michael
http://en.wikipedia.org/wiki/Whitelist –