-3

フォームと同様に、フォーム処理スクリプト、JavaScript 検証スクリプト、およびフォーム CSS をデータベースに保存しeval()、PHP コードに使用していhtmlspecialchars()ますhtmlentities()

とにかく使用mysqli_real_escape_string()していて、安全nl2br()に使用する方法について警告しないか、などです。それはここでは問題ではありません。問題は、使用していないか、データベースに投稿されているようにhtmlが移動することです。そうではないので、これらの関数を使用する必要がありますか、この場合は実際には必要ありませんか?eval()evalevilhtmlspecialcharshtmlentities<<&lt;

4

1 に答える 1

0

一般的な回答:コンテキストに変更があった場合は、エスケープ関数を使用してください。

プレーンテキスト文字列をSQLに挿入する場合:EscapeforSQL。

プレーンテキストの文字列をHTMLに挿入する場合:HTMLのエスケープ。

プレーンテキストの文字列をURLに挿入する場合:URLをエスケープします。

上記の複数のことを行う場合:すべてのエスケープを正しい順序で実行し、コンテキストの変更を見逃していないかどうかを実際に確認してください。

デモの質問:

始める

$param = "foo";
$url = "http://www.example.org/newpage";

終わり

<a href="javascript:location='http://www.example.org/newpage?param=foo';return false;">Link</a>
于 2013-01-15T09:04:19.327 に答える