2012-02-22 13 views
0

この関数を通過した後の入力の安全度はどれくらいですか?mysql_real_escape_stringさえ残っている穴はありますか?

100%安全ですか?

+0

[mysql_real_escape_stringのとにstripslashesを使用してSQLインジェクションの回避]の可能な重複(http://stackoverflow.com/questions/9393980/avoiding-sql-injection-using-mysql-real-escape-string-and-stripslashes ) – Sarfraz

+0

[mysql_real_escape_stringとhtml_special_charsの重複はありますか?](http://stackoverflow.com/questions/9075590/mysql-real-escape-string-and-html-special-chars-enough) –

答えて

1

最良の方法は、準備された文を使用してSQLにユーザー提供のデータをまったく混在させないことです。

あなたの場合(idは数字です)、単に$id = intval($_POST['id']);を使用してください。普通の整数では何も注入できません。あなたはその場合でもmysql_real_escape_string()を必要としません。

文字列引数の場合、mysql_real_escape_string()を使用するだけで十分ですが、SQL文字列の引数を一重引用符で囲むのを忘れないでください!

+0

あなたはより具体的になりますか約 "しかし、SQL文字列の引数を一重引用符で忘れることは決してありません!" –

+0

'" ...どこでfoo = '"。$ foo。"' "'だけではなく... ...どこにfoo = "。$ foo' – ThiefMaster

関連する問題