タグ

pdoに関するockeghemのブックマーク (10)

  • PDOにおける一応の安全宣言と残る問題点

    8月18日にPHP5.3.7がリリースされました。このリリースにより、PDOのSQLインジェクションの問題が一応解決されたと判断しましたので、ここに「一応の安全宣言」を表明するとともに、残る問題について報告します。 PDOの問題とは何か 以前、ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション)にて報告したように、PHP5.3.5以前のPDOにはDB接続時に文字エンコーディングを指定する機能がないため、文字列リテラルのエスケープの際に文字エンコーディングをLatin1を仮定してしまうという問題がありました。この状態ですと、DBにShift_JISで接続している際に、SQLインジェクション脆弱性が混入しました。 ※ 実は、先のエントリの「追記(2010/07/01 22:20)」に紹介した方法で文字エンコーディングを指定できるのですが、ほとんど知られていないのと

    ockeghem
    ockeghem 2011/08/22
    日記書いた
  • PDOにおけるSQLインジェクションの危険性とその回避についてまとめ

    PHPのデータベース・アクセス・ライブラリPDOは、DB接続時の文字エンコーディング指定ができないため、文字エンコーディングの選択によっては、プレースホルダを使っていてもSQLインジェクション脆弱性が発生しうるという徳丸氏のブログ内容に対し、識者がその回避方法について試し、報告しています。

    PDOにおけるSQLインジェクションの危険性とその回避についてまとめ
    ockeghem
    ockeghem 2010/07/02
    みなさま、ありがとうございました
  • ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション)

    補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブはてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2010年7月1日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり PHPのデータベース・アクセス・ライブラリPDOは、DB接続時の文字エンコーディング指定ができないため、文字エンコーディングの選択によっては、プレースホルダを使っていてもSQLインジェクション脆弱性が発生します。 追記(2011/06/19) ここに来て急にブクマが追加されはじめていますが、このエントリを書いてから状況が改善しています。PHP5.3.6(2011/03/17)にて、PDOでもデータベース接続の文字エンコーディングを指定できるようになりました。この版で、UNIX版のPHPでは解決しましたが、Win

    ぼくがPDOを採用しなかったわけ(Shift_JISによるSQLインジェクション)
    ockeghem
    ockeghem 2010/07/01
    id:kanehama 環境や設定によっては再現しない可能性があります。設定などを教えて頂けると助かります
  • blog.ishinao.net

  • はてなブログ | 無料ブログを作成しよう

    1月は新しいことを始めたくなる あけましておめでとうござい、ました。 気付けば年明けから既に20日が経過し、キリッとした気持ちも薄れ、もうすっかり日常の空気。 正月あたりのキリッとした雰囲気、いいよね。何かを始めたくなる。 そしてわたしが始めたのは、心にも体にもいい自炊。 去年の後半は…

    はてなブログ | 無料ブログを作成しよう
  • PHP: PDO::quote - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: PDO::quote - Manual
  • PHP: 定義済み定数 - Manual

    <?php if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') { echo "mysql 上で動作しています。何か mysql 固有のことをここで行います\n"; } ?> PDO::ATTR_ORACLE_NULLS (int) 空文字を SQL の NULL 値に変換します。 PDO::ATTR_PERSISTENT (int) 新規接続を生成するよりもむしろ持続的接続を要求します。 PDO::ATTR_STATEMENT_CLASS (int) Sets the class name of which statements are returned as. PDO::ATTR_FETCH_CATALOG_NAMES (int) 結果セット中の各カラム名にカタログ名を追加します。 カタログ名とカラム名は、小数点 (.) で

    PHP: 定義済み定数 - Manual
    ockeghem
    ockeghem 2009/10/18
  • 第11回 データベースへのアクセス [PDO編] | gihyo.jp

    PHPでデータベースにアクセスする方法のうち、今回はPDO(PHP Data Objects)によって行う方法を紹介します。PDOをサポートしているデータベース(DB)を用いると、接続の時にその種類を指定する以外は、PDOによって統一化された方法でアクセスすることができます。関数の場合は接続するデータベースの種類ごとに関数名が変わりますが、PDOでは多くの機能がPDOクラスに集約され、各DBごとに特化したメソッドや定数についてのみ、DBの種類に応じた名称がつけられています。 PDOを利用するための設定 PDOを利用できるようにするには、事前に確認しておかなくてはならないことがあります。 接続するDBに対応したPDO用のドライバが用意されているか ドライバとは、PDOによる接続を行うモジュールで、それぞれのDBMSごとに必要です。Oracle, PostgreSQLなど主なDBでは、あらかじ

    第11回 データベースへのアクセス [PDO編] | gihyo.jp
  • Loading...

    ockeghem
    ockeghem 2009/10/15
    重要なので再ブクマage
  • zuzara.com » PHP5.1.4でPDOとPEAR::DB, MDB2のベンチマーク

    以前にPHP5.1.0RC1でPDOとADODB、PEAR::DBのベンチマークを取りましたが、今回は5.1.4でADODBの代わりにMDB2を加えてやってみました。zuzaraのサービスの一部をさくらの専用サーバに移行しようと考えていて、OSでFedoraCore5を選択するとPHP5.1.4になります。 PDOPEAR::DBPEAR::MDB2 MDB2はどのぐらい速いのかなぁ、期待して試したのですがいまいち? 機能もメソッド名もほとんど同じなので5系ではやはりPDOがよさげ。 なお、testテーブルは1000行のデータが入っています。 pdo.php <?php require_once('Benchmark/Timer.php'); $timer = new Benchmark_Timer(true); try { $dbh = new PDO('pgsql:host=local

  • 1