0

GET 変数の ID の値に応じて、mysql データベースから異なるデータを取得する PHP スクリプトがあります。id の値は常に数値である必要があります。PDO を使用するように現在の mysql クエリを変更する代わりに、Get 変数で isnumeric を実行し、数値でない場合はスクリプトを終了することで、すべてまたはほとんどの場合にインジェクションから保護するのに十分です。 isnumericをすり抜けるSQL?

重複した質問の問題についての謙虚なコメントですが、提案された重複した質問を見て、初心者として、私の質問がその質問の正確な重複であることは明らかではないかもしれないと思います.

4

2 に答える 2

1

はい、この場合は保護されます。いいえ、自分が何をしているのかを完全に理解し、コメントで適切に選択を文書化しない限り、それは本当に、本当に悪い考えです.

あらゆる種類のセキュリティに対する 2 つの戦略があります。

  1. 拒否。根本的に修正するのではなく、目の前の状況に適した怠惰なアプローチを選択してください。これがあなたの「セキュリティ」であることを忘れる日を待ってください。コードを変更すると、突然脆弱になり、児童ポルノがサイトにアップロードされます。
  2. プロフェッショナリズム。問題を完全に修正し、入力検証して、エスケープするか準備済みステートメントを使用して、データベース層を適切に保護します。

プロフェッショナリズムを選択し、今から 1 年後に感謝します。

于 2013-05-06T23:38:07.503 に答える
0

この質問はすでに回答されているようです。そうです、isNumeric のトリックは基本的にサニタイズされた入力のみを許可するため、アプリケーションを SQL インジェクションから保護します。

于 2013-05-06T23:38:06.253 に答える