DB にデータを挿入するためにこの方法は安全ですか?
$var = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["address"]), ENT_QUOTES, "ISO-8859-1"));
DB にデータを挿入するためにこの方法は安全ですか?
$var = mysql_real_escape_string(htmlspecialchars(stripcslashes($_POST["address"]), ENT_QUOTES, "ISO-8859-1"));
「銀の弾丸」はありません。
しかし、間違いなく、SQL インジェクションを防ぐ最も効果的な方法の 1 つは、準備済みステートメントを使用することです。
http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-prepared-statements.html
もう 1 つの同様に効果的な防御策は、利用可能な最新の安全な mySql API を使用することです。mySqli (オブジェクト指向) または PDO SQL のいずれかです。
http://php.net/manual/en/mysqlinfo.api.choosing.php
SQL インジェクションに関する適切なリンクと、mySql コードのリスクを軽減する方法を次に示します。
http://php.net/manual/en/security.database.sql-injection.php
2 つのガイドラインに従うことを強くお勧めします。
1)古い非推奨の mySql API を新しいコードに使用しないでください。代わりに MySQLi または PDO を使用してください。
2) SQL ステートメントの近くでは、生のユーザー入力を許可しないでください。入力を慎重に検証し、可能な限り準備済みステートメントを使用してください。
私見では...