コード -ヘルプ
$price = mysqli_real_escape_string($connect,trim($results['price']));
価格はデータベースから取得した後、使用してエコーされます -
echo $price;
質問 - これは、XSSやSQLインジェクションから十分な安全ですか?単純に数字が含まれています。
おかげ
コード -ヘルプ
$price = mysqli_real_escape_string($connect,trim($results['price']));
価格はデータベースから取得した後、使用してエコーされます -
echo $price;
質問 - これは、XSSやSQLインジェクションから十分な安全ですか?単純に数字が含まれています。
おかげ
チェックはおそらく、データ入力の際に行われる必要がありますが、あなたは安全であるとも出力でチェックすることができます。私はちょうどis_numeric
または出力が確かに番号であることを確認するために同様のものを使用します。
標準的な方法は、XSSからの保護のために、出力をブラウザにエスケープするのにhtmlspecialchars()
またはhtmlentities()
を使用することです。しかし、別の答えで述べたように、実際の問題は、最初に正しいデータがデータベースに格納されているかどうかです。データベースに格納する前に、適切に検証してエスケープする必要があります。
ユーザー入力からの入力が$results['price']
の場合は、お尻が必要です。
SQLに送信する前に、それを期待値として強く検証/サニタイズする必要がある場合は、
データがdbからのみ読み込まれる場合、mysqli_real_escape_string()を使用して無視することができます。これは、dbに書き込まれるべきユーザ入力をエスケープするために有益です。
mysqli_real_escape_string()は、SQLインジェクションを防ぐために、データベースに挿入しようとしているデータをエスケープするために使用されます。それはXSSとは関係ありません。
あなたは何をしたいのかをするためにhtmlentities()を使う必要があります。私はあなたにeykanalの答えを読んで、is_numericを使って検証することをお勧めします。
$ results ['price']はユーザー入力ですか? – CJD
@CJD番号。 mysqli_fetch_array – sarthak
SQLインジェクションは、ユーザーアクションがデータベースに書き込む場合にのみ発生します。 –