当社はIT技術のオンライン教育を得意としたセミナー専門会社です。 | 一戸英男

ITエンジニアの技術力UPをお約束します。

特定のフォルダファイル(画像、文書)をHTML経由で許可、直接ダウンロードは禁止。

特定のフォルダファイル(画像、文書)をHTML経由で許可、直接ダウンロードは禁止。


例えば、特定サイトのHTMLからリンクされているPDFやWORD,EXCELファイルはブラウザで開けるが、直接URLダイレクトや検索結果のPDFリンクは開けないようにしたいという要望はよくあると思います。通常HTMLやプログラミング言語はサイトの入口を制御しているフレームワーク等のコントローラーでページ制御するため細かいアクセス制限をかけられるのですが、画像やその他の文書ファイルになってくるとどちらかといえばWEBサーバ側の制御配下であるため思ったようにファイルを隠蔽できないという悩みを抱えているエンジニアも多いと思います。今回はちょとした設定でできる制御方法について説明したいと思います。

Apacheの設定でリファラーチェックを入れHTMLからクリックで表示、直接URL指定、検索結果PDFリンクは非表示に!

直接ブラウザでファイルオープンをさせないための上位フォルダーをDirectoryディレクティブで指定しフィルターします。

Apache2.4の場合

これでApacheを再起動すれば適用です。.htaccessでやるなら再起動も不要でしょう。

細かくファイルの拡張子まで指定してやりたければFilesディレクティブでパターンマッチさせれば良いと思います。

FilesMatchを使った Apache2.4の場合

Apacheのディレクティブで表示結果に出さないよう抑え込む場合

タグ: , , , ,

画像アップロードに於けるセキュリティ対策


WEBサイトのセキュリティ対策の中でも重要なのが画像のアップロード時の不正対策だ。最も行われている攻撃は画像のファイルのメタ情報に不正コードを埋め込んで、後から復元&実行を穴のあるプログラムコードに混ぜて処理させファイル改竄に持ってゆくというものだ。この手法は古くからある手法だが残念ながら今でも十分有効な攻撃手法です。

画像ファイルアップロードで考慮すべきこと

  • ファイルのアップロードデータをドキュメントルートの外フォルダへ配置する。移動ではなく保存先を最初から外部にする。
  • ファイルのファイル名をオリジナルでは無いランダムなベースファイル名にする。
  • アップロードした画像の中身が本当に画像ファイルなのか検査する。プログラムなのに拡張子が画像拡張子の場合を検査
  • アップロードした画像の中にあるメタインフォに不正コードを含まれてしまう可能性があるのでexiftoolで削除する
  • Google captchaなどを使用してバッチ処理の攻撃を防ぐ
  • ファイルの格納は1種類に統一する。仮に画像種別が複数あっても保存時に変換する。変換するとメタ情報が消去される。
  • 画像ファイルのアップロードできるサイズを規定し必要以上の大きなサイズでメモリ圧迫を避ける。

exiftoolを導入

元々はexiftoolの目的は画像のメタ情報(撮影時の機種、タイムスタンプ、画像のタイプ、場所などの付帯情報)を編集するツールです。このソフトはオープンソースなのでダウンロードしてどんなプラットフォームでも利用が可能です。それではLinux(CentOS6,7)などで利用する場合について解説していきたいと思います。

exiftoolのホームページ

ダウンロードしたら適用なディレクトリに配置して解凍します。

もしMakeする際にエラーが出るとしたら、perlモジュールが足りないため発生する可能性はあります。その場合はcpanをyumでインストールし cpanツール起動しライブラリーをインストールしてください。「cpan[1]> install ExtUtils::MakeMaker」

exiftoolでメタ情報を除去

気をつける点は”-all= *.jpg”の”=”の後は半角1個分のスペースの後に画像ファイル名を指定しないとエラーになる。またデフォルトで変換前のファイルはoriginalという名前が付加され残ります。残すと危険なので削除を最後に実施します。

 

画像変換にImageMagickを使う。

GoogleのreCaptchaで投稿を安全にする(連続投稿のブロック)

簡単に設置できるので試してください。「私はロボットではありません」のボックスが表示されます。

Google reCaptcha

タグ: , ,