0

ユーザーが画像を保存できるサイトがあります。私は 'mysql_real_escape_string' で mysql の挿入をサニタイズしますが、誰かが行って、画像の説明にコンテンツ リダイレクトを含むメタを入力したため、サイトが読み込まれるたびに (最新の画像も読み込まれます)、リダイレクトされます。

それを防ぐために、文字列またはSQLクエリをサニタイズするにはどうすればよいですか?

前もって感謝します!

4

4 に答える 4

0

この特定の例では、データを出力するときにhtmlentitiesを使用することで回避できた可能性があります。

<?php
$str = "A 'quote' is <b>bold</b>";

// Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str);

// Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str, ENT_QUOTES);
?>

キャッチは、保存しているもので使用されているほとんどすべてのHTMLを破壊することです。特定のタグを許可し、他のタグを禁止しようとすると、すぐに複雑になります。

于 2012-09-12T09:40:05.887 に答える
0

mysql_real_escape_stringSQLインジェクションを防ぐためにのみ使用されます。

XSS を防ぐには、htmlspecialcharsまたはhtmlentitiesを使用して html コンテンツをサニタイズする必要があります。

于 2012-09-12T09:40:06.140 に答える
0

htmlspecialchars();データベースから何かを入力する前と、ユーザー入力をデータベースに送信する前に、毎回使用する必要があると思います。準備されたステートメント + htmlspecialchars();[オプション]

于 2012-09-12T09:42:30.030 に答える
0

ここにあなたができることがいくつかあります

  1. 使用するstrip_tags()
  2. mysqli_*の代わりに関数を使用mysql_
  3. パラメータ化されたクエリ/準備されたステートメントを使用します。
  4. 可能であれば、PHP フレームワークの使用を検討してください。
  5. 特殊文字をそれぞれの文字に変換するhtmlentities()
于 2012-09-12T09:42:38.787 に答える