タグ

sqlとphpに関するMukeのブックマーク (2)

  • PHPのsprintfによるSQL組み立てで脆弱性が生じる例

    1番目 sprintf("SELECT * FROM table WHERE id = %d", $value); $valueにどのようなデータが入っていようが、PHPの「親切な」型変換により数値に変換されます。escape()が無くても問題ありません。 "123" => 123 " 123" => 123 "123abc" => 123 "abc" => 0 " " => 0 "" => 0 null => 0 ただし、4つめ以降の例はアプリケーションとしては意図しない動作になるでしょうから、その観点では事前にバリデーションが必要です。 2番目 sprintf("SELECT * FROM table WHERE id = %s", escape($value)); 1番目の%dを%sに書き換えescape()を付加した例です。$valueはリテラルではなくSQL構文の一部として展開さ

    PHPのsprintfによるSQL組み立てで脆弱性が生じる例
    Muke
    Muke 2015/04/23
  • CakePHPのファイルアップロードプラグイン「UploadPack」を使ってみた

    CakePHPのファイルアップロードプラグイン「UploadPack」を使ってみた CakePHPってすごい機能が満載ですが、ファイルアップロードに関しては標準機能ではさくっとできないっぽいです。(たぶん) そんな感じなのでいろいろとプラグインがあるらしいですが、この記事では「UploadPack」というのを使用してみます。 ※CakePHPのバージョンは1.3です。 投稿日2011年01月27日 更新日2011年04月02日 「UploadPack」をインストールする まずはファイルを以下ダウンロードしましょう。 szajbus / uploadpack 解凍したフォルダを「upload_pack」にリネームして、「app」→「plugins」にコピーします。 これでインストール完了です。 データベース(テーブル)作成 アップロードしたファイルの情報を入れるテーブルです。 最低限idとフ

    CakePHPのファイルアップロードプラグイン「UploadPack」を使ってみた
  • 1