Standing on the Shoulder of Linus

Home / 2012 / 2月 / 04 / FuelPHP ホワイトリストとブラックリスト その2

FuelPHP ホワイトリストとブラックリスト その2

前回の FuelPHP ファイルアップロード、ホワイトリストとブラックリスト の補足です。

ホワイトリストとブラックリストを両方入れた場合について。

$config = array(
    'ext_blacklist' => array('pdf', 'docx'),
    'ext_whitelist' => array('jpg', 'jpeg', 'gif', 'png'),
);

という例を前回取り上げました。今回は、同じ拡張子を ext_blacklist と ext_whitelist とで指定したらどうなるか?です。例えば、

$config = array(
    'ext_blacklist' => array('jpg'),
    'ext_whitelist' => array('jpg', 'gif', 'png'),
);

のような場合です。試したところ、「jpg は許可されない、gif, png は許可される」でした。ということで、ホワイトリスト優先ではなく、ホワイトリストもブラックリストも両方ともパスするもののみ許可、というのが正しいです (UPLOAD_ERR_EXT_BLACKLISTED で弾かれました)。

この例だと、jpg はブラックリスト指定されているので、ホワイトリスト指定しても許可されない、というわけです。

同じ場所にホワイトリストとブラックリストと指定している場合はすぐ分かりますが、ブラックリストは大元の config ファイルで指定、ホワイトリストは Upload::process の直前で指定、というようなケースでは、「ホワイトリスト指定しても許可されない」とハマる可能性もありますね。

関連

Posted in fuelphp | Tagged PHP, セキュリティ
← FuelPHP ファイルアップロード、ホワイトリストとブラックリスト PHP技術者認定試験上級試験 →

アーカイブ

人気の投稿とページ

  • キンドル本を印刷する(PDFに変換する)方法
  • 名古屋駅から国際センターまでの道のり(徒歩)
  • AGPL ライセンス(GPLとは似ているが違いもある)
  • 6年使ったイーモバイル(Y!mobile)を解約手続。店頭でSIM返却
  • JP-Secure SiteGuard WP Pluginは不正ログイン防止に役立つか

プロフィール

水野史土:月70万PVホームページ制作会社のレスキューワーク株式会社で、PHPソフトウェアのサポートを行っている。concrete5コミュニティリーダー、Novius OSコアコード貢献者でもある。 詳しくは管理者詳細参照。
大好評WordPress書籍「WordPressユーザーのためのPHP入門 はじめから、ていねいに。」サポートページ

Copyright © 2015 Standing on the Shoulder of Linus.