ホームページ >バックエンド開発 >PHPチュートリアル >MySQL の LIMIT 句でユーザー入力を使用するときに SQL インジェクションを防ぐにはどうすればよいですか?
LIMIT 句の変数を適切に処理して SQL インジェクションを回避する
ユーザー指定の入力でデータベースをクエリする場合、データの整合性を確保し、SQL を防止します注射は重要です。ただし、MySQL の LIMIT 句で bindingValue メソッドを使用する場合、入力値を正しく処理することが重要です。
提供されたコード スニペットでは、LIMIT 部分の :skip パラメータに一重引用符が追加されているためにエラーが発生します。 SQL ステートメント。この不一致は、PHP の PDO が整数以外の値を一重引用符で自動的に囲むことが原因で発生します。
この問題を解決するには、bindValue メソッドに渡す前に、:skip パラメータが整数としてキャストされていることを確認してください。
$fetchPictures->bindValue(':skip', (int) trim($_GET['skip']), PDO::PARAM_INT);
値を強制的に整数にすることで、SQL インジェクションにつながる可能性がある一重引用符の追加を回避します。脆弱性。これにより、ユーザー指定の入力が SQL クエリで使用される前に適切にサニタイズされるようになります。
整数へのキャストは、入力が数値文字列の場合にのみ機能することに注意してください。数値以外の入力の場合は、適切な検証およびエラー処理メカニズムを実装する必要があります。
以上がMySQL の LIMIT 句でユーザー入力を使用するときに SQL インジェクションを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。