2015/03/19

PHP の DB アクセスは MDB2 と PDO のどちらがいいのか?


PHP の DB アクセスは Pear の MDB2 と ネイティブの PDO のどちらがいいのか悩んでいました。ちょっと調べたので参考程度にまとめておきます。

結論からすると、今後の開発では PDO が推奨されるけれども、セキュリティを重視するなら MDB2 を選択するのがよさそうです。ざっくりとしたものですが、少し比較してみましょう。

・PDO

  • PHP 標準ライブラリのためパフォーマンスがよい
  • オブジェクト指向で開発をできる
  • 文字コードに地雷があり脆弱性を生む可能性あがる

・MDB2

  • 実績のある Pear ライブラリ
  • 文字コードの指定ができるので脆弱性を生みにくい
  • PHP で実装されているためパフォーマンスが若干劣る

この比較を見ると、今後の開発では PDO がよいけれども脆弱性を作りこまないように注意が必要、セキュリティを重視するなら若干パフォーマンスが落ちるものの MDB2 を選択するのがよいと言えそうです。

体系的に学ぶ 安全なWebアプリケーションの作り方」でも MDB2 をセキュリティ的に推奨しているというのも大きな理由になりそうです。

実際の開発現場では、どちらを選択しているのでしょう?

レガシーを引きずっている場合はMDB2、新規開発は PDO という感じでしょうか?

MDB2 がいつまでメンテナンスされるかという問題もありますが、ユーザー数が多いのでしばらくは大丈夫なのではないでしょうか。ということで、私はセキュリティを重視して MDB2 を採用したいと思います。(判断保留)

ちょっと知見が足りないので、ご意見いただけるとありがたいです。

あと、PHP の DB アクセスは、エラー制御とトランザクション制御の情報が少なすぎますね。この辺はなんとかして欲しいところです。

 

■参考サイト


スポンサーリンク


このエントリーをはてなブックマークに追加




Twitter ではブログにはない、いろんな情報を発信しています。


コメント

コメントを書く



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。


    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから