1

ユーザー入力に基づいてユーザーを登録するスクリプトがあります。これは、準備されたステートメントとホワイトリストを使用して、SQL インジェクションを防ぎます。しかし、XSSの防止を理解するのに苦労しています。

私が理解していることから、HTMLをページに出力している場合にのみXSSを防ぐ必要がありますか? これは何を意味するのでしょうか???

HTMLをWebページに出力していないため、この登録ページでは適用されないと思いますか?そうですか?

XSS を防止する場合、htmlspecialchars を使用しますか?

4

3 に答える 3

3

通常、戻り値をページに表示する場合、または後で取得して表示するためにデータベースに情報を挿入する場合 (ユーザー プロファイル情報など) は、htmlspecialchars を使用する必要があります。

私の場合、ユーザー登録の際、入力欄に正しい値を入力できなかった場合、入力した値でページを再表示しています。この場合、htmlspecialchars でエンコードします。

いつでも、DB からの情報を Web ページに再表示する予定がある場合 (プロファイルなどで言及されているように)、htmlspecialchars を使用する必要があります。

申し訳ありませんが、常に言うよりも安全です -ユーザー入力を信頼しないでください

于 2012-04-10T23:46:40.897 に答える
0

私が理解していることから、HTMLをページに出力している場合にのみXSSを防ぐ必要がありますか? これは何を意味するのでしょうか???

XSS は、意図しないときに HTML (実際には Javascript) をクライアントに出力するサーバーによって実行される攻撃です (その HTML が特別に作成され、敵意のあるユーザーによって提供された場合)

HTMLをWebページに出力していないため、この登録ページでは適用されないと思いますか?そうですか?

ユーザー入力に由来するものを何も出力していない場合は、安全です。

XSS を防止する場合、使用しhtmlspecialcharsますか?

はい、それで十分です。

于 2012-04-10T23:50:09.587 に答える
0

基本的に、XSS は、ユーザーの入力をサニタイズせずに Web ページに表示するときに発生します。

例: ユーザー入力

<script>alert('hello you are hacked');</script>

テキストボックスで、登録後にWebページに表示します

Hello, $username

これは突然に変わります

Hello, <script>alert('hello you are hacked');</script>

これは、XSS の形式の 1 つです。


XSSを防ぐ効率的な方法の1つは次のようなものです

echo htmlspecialchars($varname, ENT_QUOTES, 'UTF-8');
于 2012-04-10T23:45:46.273 に答える