私は一部のレガシー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. `unreachable!` vs `panic!`を使用するとパフォーマンス上の利点はありますか?
- 4. set_include_pathを使用すると、セキュリティ上のリスクや不利な点がありますか?
- 5. セッション変数を暗号化するセキュリティ上の利点はありますか?
- 6. アプリケーションデータベースを使用パターンで分けることに利点はありますか?
- 7. okhttp3でクッキーを使用すると、CookieJarはインターセプターよりもパフォーマンス上の利点がありますか?
- 8. ニューラルネットワークにテンソルフローを使用する利点はありますか?
- 9. x64としてアセンブリをコンパイルすることに利点はありますか?
- 10. userscriptでは、querySelector()とjQueryの$()を使用する利点はありますか?
- 11. これをコード化するのにパフォーマンス上の利点はありますか?
- 12. フォアグラウンドサービスにContext.startService(Intent)の代わりにContext.startForegroundService(Intent)を使用することに利点はありますか?
- 13. sqlクエリに変数がないときにPDOでプリペアドステートメントを使用する利点があります
- 14. SharedPreferencesの代わりにDataLayersを使用することに不利な点はありますか?
- 15. MacPortsとRubyGemsを同時に使用することに不利な点はありますか?
- 16. エンティティを使って "mapped by"というIDを使用することに利点がありますか? ?
- 17. anglejsにテンプレートをプリフェッチすることの利点はありますか?
- 18. Mantra.jsアーキテクチャフレームワークを使用する利点はありますか?
- 19. LF over CRLFを使用する利点はありますか?
- 20. Djangoのライブラリをアプリに変えることの利点はありますか?
- 21. ソフトウェアをパッケージマネージャからインストールするよりもソースからビルドすることの利点はありますか?
- 22. Dartで固定長のリストを使用するとパフォーマンス上の利点はありますか?
- 23. デスクトップマニフェストにアプリマニフェストファイルを持たせることに利点はありますか?
- 24. スタースキーマテーブルデザインにリレーションシップを含めることに利点はありますか?
- 25. 休止状態でreadOnlyを使用すると、パフォーマンス上の利点はありますか?
- 26. リンクの代わりにボタンを使用する利点はありますか?
- 27. arrayWithCapacityを使用する利点は、arrayを使用することよりですか?
- 28. Hadoop over Oracleのテーブルでインデックスを使用することに利点はありますか?
- 29. Producer-ConsumerパターンにLooperを使用することの利点はありますか?
- 30. 「ダム」データストア以外の目的でMySQLを使用することに利点はありますか?
完全に安全で正確なクエリを手動で作成できます。 PDOは、初心者が簡単にできるようにします。しかし、両方とも、挿入脆弱性に関係なく、あなたのdbを完全に駄目にすることがあります。動的に 'delete from $ table'を生成し、' where'節を忘れると、世界中のライブラリがあなたを救うことはできません。 –