私はそれが次GETパラメータをMySQLのセキュリティに直接渡す?
http://www.mytestapp.com/results?limit=1234
に似たURLを持つようにセキュリティ上のリスクだかどうかを知りたいのですが制限GETパラメータは、有効な整数としてチェックされ、クエリに直接渡されます。
ユーザーがこのパラメータを非常に大きな数値に変更した場合はどうなりますか?巨大なデータベースの場合、サービス拒否と同様の効果がありますか?
結果の制限が可変のベストプラクティスは何ですか?
私はこの回答に同意します。サイズの制限を設定することは、[ホワイトリスト](http://en.wikipedia.org/wiki/Whitelist)を適用することと考えられます。ユーザーが望むものをあなたに教えさせてもらうことはできますが、何を求めているかにかかわらず、許可されていることだけをさせることができます。 –
私は引き続きgetパラメータを検証しています。 "1; DROP TABLE USERS"は数値ではないので、?limit = 1%3BDROP%20TABLE%20USERSは機能しません。 –
ユーザーが制限パラメータとしてインスタンス「18446744073709551615」を指定した場合、サイトにはどうなりますか? 巨大なデータベースでは、選択クエリはすべてのMySQLリソースを使い切り、サイト全体をフリーズしますか? –