私は、ページ上に出力されるすべてのユーザ入力、例えばを消毒しています。:データのサニタイズPHP - if文の中にあるユーザ入力をエスケープする必要がありますか?
echo escape($user_input);
私がページに出力されませんが、内部のステートメントですユーザ入力についての質問を持っている - 彼らはエスケープが必要なのですか?
は、このOKです:
if ($user_input == 'something') { echo escape($another_user_input); }
またはそれは次のようになります。この単純な例よりfaffを追加し、他のロジック(foreach文など)のための
if (escape($user_input) == 'something') { echo escape($another_user_input); }
同じ質問。
データベースに挿入する前の2番目の値で、不正なコードから値が消去されます。例、ユーザー名!最初のものはコメントのようなもので、ユーザーの入力を受け取り、それをエスケープして印刷し、htmlspecialcharsを使用します。 –
@ MrPro Wut ?!どうして? – deceze
あなたがあらかじめ定義された文字列と比較しているだけの場合、入力をエスケープするのにはほとんど役に立ちません。 'echo'行をエスケープする必要があります。あなたのページのHTMLを破壊したり悪意のあるスクリプトを挿入したりするものがないことを確認する必要があります。その場合、 'escape'だけでは不十分だと思います。 –