PHPスクリプト内のこのMySQLステートメントはどれくらい安全ですか?
-
05-07-2019 - |
質問
このMySQLステートメントはPHPでどの程度安全ですか? SQLインジェクションに対して脆弱ですか?
$sql = sprintf("INSERT IGNORE INTO my_table VALUES(%d, %d, 1, NOW())",
mysql_escape_string(このMySQLステートメントはPHPでどの程度安全ですか? SQLインジェクションに対して脆弱ですか?
<*>SESSION['client']['id']),
mysql_escape_string(このMySQLステートメントはPHPでどの程度安全ですか? SQLインジェクションに対して脆弱ですか?
<*>POST['id']));
解決
はい、%dは文字列をエスケープする必要がない数値のみになるため。単一引用符を使用すると、速度も向上します。したがって、安全で高速な方法は次のとおりです。
$sql = sprintf('INSERT IGNORE INTO my_table VALUES(%d, %d, 1, NOW())', はい、%dは文字列をエスケープする必要がない数値のみになるため。単一引用符を使用すると、速度も向上します。したがって、安全で高速な方法は次のとおりです。
<*>SESSION['client']['id'], はい、%dは文字列をエスケープする必要がない数値のみになるため。単一引用符を使用すると、速度も向上します。したがって、安全で高速な方法は次のとおりです。
<*>POST['id']);
他のヒント
いいえ、脆弱ではないはずです。
PHP で SQL クエリを保護する方法に関する詳細な記事を次に示します。
http://www.tech- evangelist.com/2007/11/05/preventing-sql-injection-attack/
それは私には問題ありません。
実際には、sprintf(&quot;%d&quot;)は結果として数字のみになるため、この場合はmysql_escape_stringを使用する必要がありますか?
所属していません StackOverflow