プロが教えるわが家の防犯対策術!

サーバー上にxxxx.jsonというJSONファイルを置き、jQueryの$.getJSON()で読み込んでパースしてHTML内にデータを表示させています。
このxxxx.jsonをブラウザで直接開くとファイルの中身が表示されてしまい、ブラウザ経由やダウンロードソフトなどでダウンロードできてしまうと思いますが、これをさせないようにする方法はないでしょうか。

A 回答 (5件)

必ずしもダウンロードを防ぐわけではありませんが,


jQueryによるアクセスであれば
X-Requested-with: XMLHttpRequest
というヘッダが送られるので (大抵のライブラリでも送られますが),
これを条件に.htaccessで制限をかける,という方法があります。
ref)
http://api.jquery.com/jQuery.ajax/ (jQueryのajaxメソッドのマニュアル)
https://www.google.co.jp/search?q=X-Requested-wi … (X-Requested-with .htaccessによるgoogle検索結果)

クロスドメインでのアクセスの場合,これでは対応できないのですが,
Originあたりのチェックをすればよい気はします。
    • good
    • 1
この回答へのお礼

求めていたものはこれでした。

jQueryからのリクエストヘッダについては調べて分かったのですが、それでアクセス制限を掛ける方法が分かりませんでした。

これで対応できます。ありがとうございました。

お礼日時:2014/07/24 18:15

お好きにダウンロードしてくださいという物しかWebで公開することはできません

    • good
    • 0

.htaccessファイルで指定したファイルの閲覧を制御する方法があるようです。



参考:
「特定のファイルだけ守る」
http://www.futomi.com/lecture/htaccess/files.html

「.htaccess活用法(5)」
http://www.shtml.jp/htaccess/data.html

試してませんので、jsonファイルの本来の動作を阻害しないかどうかはわかりませんが。
    • good
    • 0

理論的には不可能です。


されにくい方法、ならば

* JSON ファイルを Base64 化する
* JSON ファイルを暗号化して $.get() した後に復号化する
* JSON を動的生成する仕組みにして、パスワード付の $.post() でなければ出力させない
* 取得前に擬似的な「3ウェイ・ハンドシェイク」を必要とするように実装する
* 画像ファイルにデータを埋め込む「電子透かし」をがんばって実装する
    • good
    • 0

公開しているものを非公開にするのは理論的に不可能だと思います。




スカイツリーを建ててみんなにご覧いただくが、写真は撮らせたくない

てのと一緒だと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!