私は一部のレガシーPHPコードをリファクタリングしているよ、と私はPDOが準備された文と、そのようなを加えて、より安全であることを知っているが、mysql_query()
方法対PDO::query()
方法を使用して、任意のセキュリティ上の利点があるかどうか、私は疑問に思って。ある? PDOまたはmysql_のバグのPDO :: queryとmysql_queryを使用することによるセキュリティ上の利点はありますか?
答えて
ショート*、データベースクエリとセキュリティ問題は、データベースに接続するために使用されているもの、クエリであることRANに依存しません。
userdataで安全でないクエリを作成し、PDO::query()
で実行すると、mysql_query()
と同じように安全ではありません。同様に、安全なクエリがある場合は、PDO::query()
で実行すると、mysql_query()
と実質的に同じです。
ありませんが、PDOの代わりにたstatmentsを用意し、あなたがPDOを使用した場合:クエリ()、それはあなたのための変数をエスケープしますと、あなたはその後、インジェクション攻撃に対してかなり不浸透性になります。
PDOも
prepared statements
transactions
ability to switch drivers
can get result rows as objects
etc
Mysqliにはpsとトランザクションもあります。 – codez
@codez、はい、彼はmsqliを使用していません。 – dqhendricks
あなたはPDOは、ユーザー入力から文をprepeared内の文字列をCONCATすることができます... MySQL関数を介して他の利点を持っているので、それはどのような方法で、より安全ではありません。 プリペアドステートメントにもいくつかの欠点があります。たとえば、あなたが、たとえば、Uは、データの可変量を使用する単純なクエリを作成することはできません:あなたは唯一のMySQLを使用することがわかっている場合は
WHERE id IN (1,2,5,7,9,23)
、私はあなたがmysqliのではなく、PDOで行くことをお勧めします。不要な抽象化層は必要ありません。
- 1. .net 4のno-PIA機能を使用することによるパフォーマンス上の利点はありますか?
- 2. PHPでオブジェクトを使用するとパフォーマンス上の利点はありますか?
- 3. set_include_pathを使用すると、セキュリティ上のリスクや不利な点がありますか?
- 4. セッション変数を暗号化するセキュリティ上の利点はありますか?
- 5. アプリケーションデータベースを使用パターンで分けることに利点はありますか?
- 6. x64としてアセンブリをコンパイルすることに利点はありますか?
- 7. userscriptでは、querySelector()とjQueryの$()を使用する利点はありますか?
- 8. これをコード化するのにパフォーマンス上の利点はありますか?
- 9. MacPortsとRubyGemsを同時に使用することに不利な点はありますか?
- 10. Djangoのライブラリをアプリに変えることの利点はありますか?
- 11. Dartで固定長のリストを使用するとパフォーマンス上の利点はありますか?
- 12. スタースキーマテーブルデザインにリレーションシップを含めることに利点はありますか?
- 13. ソフトウェアをパッケージマネージャからインストールするよりもソースからビルドすることの利点はありますか?
- 14. 休止状態でreadOnlyを使用すると、パフォーマンス上の利点はありますか?
- 15. リンクの代わりにボタンを使用する利点はありますか?
- 16. 「ダム」データストア以外の目的でMySQLを使用することに利点はありますか?
- 17. arrayWithCapacityを使用する利点は、arrayを使用することよりですか?
- 18. asp.net mvcの上に角度jを使用することの利点
- 19. Androidサポートライブラリの使用に不利な点はありますか?
- 20. 保存されたprocsでPRINTを使用することに不利な点はありますか?
- 21. レポートモジュールの単一サーバーで別々のデータベースを使用することの利点はありますか?
- 22. GCCで-O3を使用することに欠点はありますか?
- 23. プリペアドステートメントを使用することには欠点がありますか?
- 24. フレームを再描画しないとパフォーマンス上の利点はありますか?
- 25. このリファクタリングには何か利点はありますか?
- 26. EコマースPHPフレームワークを使用することの利益はありますか?
- 27. Java Singletonと静的 - 実際のパフォーマンス上の利点はありますか?
- 28. Objective-Cでブロックを関数に使用する利点はありますか?
- 29. Python 3を使用する利点/利点は何ですか?
- 30. TextBox上でRichTextBoxを使用する利点は何ですか?
完全に安全で正確なクエリを手動で作成できます。 PDOは、初心者が簡単にできるようにします。しかし、両方とも、挿入脆弱性に関係なく、あなたのdbを完全に駄目にすることがあります。動的に 'delete from $ table'を生成し、' where'節を忘れると、世界中のライブラリがあなたを救うことはできません。 –