Xidear

福岡県 佐賀県 その他地域 目的から探す 項目別で探す 裏技・お得情報

Menu

Skip to content
  • ホーム
  • 掲載申込
  • 料金表
  • Xidearとは?
  • 登録店舗ログイン
  • コンサルユーザー登録
  • 会員専用
  • サイトマップ
地域情報ポータルサイトXidear > 裏技 > (WordPress)PHP、ファイルの直リンクやURL直接入力での参照を禁止する(リファラを見ないやり方)

  • 店舗情報
  • 新着情報
  • ギャラリー
  • ミッション
  • イベント
  • アンケート
  • フリーページ

パソコン関連

まあ、wordpressなどサイトパスワードをかけても、内側の「PDF」のファイルなどアドレス直入力などすると見れてしまいますね。

 

 

それをサイトを通らないと見れないようにする設定です。

 

 

さて、それではやり方ですが、実際のコードを見た方が手っ取り早いと思うので
サンプルをおいておきますね。

ファイルは

.htaccess(PDF直リンクを拒否するために使用)
test_before.php(利用規約画面)
test.php(PDFをダウンロードさせる奴)
test.pdf(ダウンロードさせるPDF)

の4つが登場します。

中身はそれぞれこんな感じφ(--)

■.htaccess(PDF直リンクを拒否するために使用)

<Files ~ “.(pdf|csv)$”>
deny from all
< /Files>
●このファイルを、アクセス不可にしたい所のフォルダに設置。
●アクセス不可にしたい拡張子は、「|」を使用し入力。
●ftpなどでアップロードする場合は「.htaccess.txt」で保存し、サーバー上でリネイムして下さい。

■test_before.php(利用規約画面)

<?php
//セッション開始
session_start();//セッション値設定
$_SESSION{‘flg’}= “ok”;
?>
< a href=”test.php” target=”_blank”>PDFダウンロード</a>

●このファイルも「.htaccess」と同じフォルダに設置

 

 

■test.php(PDFをダウンロードさせる奴)

<?php
//セッション開始
session_start();if(isset($_SESSION{‘flg’}) && $_SESSION{‘flg’} == “ok”){
//PDF出力
header(“Content-Disposition: attachment; filename=test.pdf”);
readfile(dirname(__FILE__) . “/test.pdf”);
}else{
print “不正遷移”;
}
?>

●赤文字の所をファイル名を変更する。アクセス可能にするファイル名(test.pdf)とコード(test.php)のファイル名を同じにして「.php」はファイルと同じところに保存する。

 

 

■test.pdf(ダウンロードさせるPDF)
※適当なPDF

これで「test.pdf」は「test_before.php」を経由した「test.php」からのみ参照できます。
「test.pdf」や「test.html」を直リンクしたり、URLを直接入力しても見ることはできません。

……もったいぶった割には大したことなかったですね(--ゞ

一応解説も書いておきますね。

■.htaccess(PDF直リンクを拒否するために使用)

<Files ~ “.(pdf|csv)$”>
deny from all
< /Files>

は「拡張子『.pdf』と『.csv』には誰もアクセスすんな!」です。
あくまでhttp経由のアクセスに対しての制限なので、
CGIさんが内部的に参照する分には問題ありませんけどね。

■test_before.php(利用規約画面)

<?php
//セッション開始
session_start();//セッション値設定
$_SESSION{‘flg’}= “ok”;
?>
< a href=”test.php” target=”_blank”>PDFダウンロード</a>

は、セッションにフラグを立てて、リンクを表示しています。
偉そうに言いましたが、見れば分かりますね、ハイ。
セッションにフラグを立てているのは「このページ見たよ!」の目印です。
今回は楽なのでPHPで作りましたが、PerlでもJavaでもRubyでも、お好きにどーぞ。

■test.php(PDFをダウンロードさせる奴)

<?php
//セッション開始
session_start();if(isset($_SESSION{‘flg’}) && $_SESSION{‘flg’} == “ok”){
//PDF出力
header(“Content-Disposition: attachment; filename=test.pdf”);
readfile(dirname(__FILE__) . “/test.pdf”);
}else{
print “不正遷移”;
}
?>

は、セッションを参照して「flg」に「ok」が設定してあれば、
つまり「test_before.php」を経由していればPDFをダウンロードさせます。
「test_before.php」を経由していなければサヨナラです。

 

最後にWordpressの上位に入る「php」に下記のコードをコピペして下さい。

妥当的には「header.php」辺りがよろしいかと思います。

 

<?php
//セッション開始
session_start();
$_SESSION{‘flg’}= “ok”;
?>
●「</head>」の上あたりにコピペして下さい。

 

 

 

まとめると

1.「.htaccess」で保護したいファイルへの直接アクセスを禁止する
2.保護したいファイルはCGI経由で表示する
3.「2.」のCGIで正規のルートでのアクセスかを(セッションを使ったりなんだりで)チェックする

ファイルへの直リンクやURL欄に直接入力しての参照を禁止する方法です。
「特定のページを経由しないと表示できないようにする」と言った方が正確ですけどね。
ちなみに「PHP」とか書いておいてなんですが、別にPHPである必要性はありません。

単純に直リンクを禁止するだけなら

ファイルの直リンクを禁止する(リファラを見るやり方)

で書いたようなやり方でも良いのですが、もう少し厳密にやりたくてですね。
Aというファイル(今回はPDFとCSVの二種類のファイル)をBというページから
ダウンロードさせたいのですが、それ以外、例えばAへの直リンクや
URLを直接入力してAを参照することを禁止したかったのです。
ついでに書くと、Bは利用規約の画面なので絶対見て欲しい。
それを見ない限りダウンロードさせねーぞ!というのが経緯です。

関連

日本で一番簡単にビットコインが買える取引所 coincheck bitcoin
地域情報 ブログランキングへ

Post navigation

← 秋の入会金無料キャンペーン!2016年9月1日~9月15日のエントリー限定! ノーリスク(完全無料)で毎月2,000円~貰える仕組み【bitminer/coincheck】(マニュアル化) →
日本で一番簡単にビットコインが買える取引所 coincheck bitcoin

最近の投稿

  • <span class="title">交流磁気治療器の専門店 磁気コム(ギャラリー)</span>
    交流磁気治療器の専門店 磁気コム(ギャラリー)
  • <span class="title">ホワイトアレイ(WHITE ALLEY)</span>
    ホワイトアレイ(WHITE ALLEY)
  • <span class="title">エアートランポリンの販売を実施しています。(格安)</span>
    エアートランポリンの販売を実施しています。(格安)
  • <span class="title">通信カラオケ完備しています。</span>
    通信カラオケ完備しています。
  • <span class="title">居酒屋 ひら川ギャラリー</span>
    居酒屋 ひら川ギャラリー
© 2014 by Kxiz. All Rights reserved. Xidear is Powered by kxiz
  • プライバシーポリシー
  • 利用規約
  • 運営組織
  • お問い合わせ・FAQ

コンテンツから探す

・Xidearくーぽん
・町の情報

店舗を探す

・グルメ
・ショッピング
・ビジネス
・企業案内
・医療・介護
・暮らし
・温泉・宿泊
・美容・健康
・観光
・遊ぶ
・不動産
・習い事
・その他

全店舗一覧

お申込項目

・店舗掲載お申込み
・スポンサー様・広告掲載お申込み
・求人・フリーペーパーお申込み
・裏技・お得情報投稿
・営業取次代理店お申込み