- ベストアンサー
JSONファイルをダウンロードさせない方法
サーバー上にxxxx.jsonというJSONファイルを置き、jQueryの$.getJSON()で読み込んでパースしてHTML内にデータを表示させています。 このxxxx.jsonをブラウザで直接開くとファイルの中身が表示されてしまい、ブラウザ経由やダウンロードソフトなどでダウンロードできてしまうと思いますが、これをさせないようにする方法はないでしょうか。
- みんなの回答 (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-with+.htaccess&lr=lang_ja (X-Requested-with .htaccessによるgoogle検索結果) クロスドメインでのアクセスの場合,これでは対応できないのですが, Originあたりのチェックをすればよい気はします。
その他の回答 (4)
- b0a0a
- ベストアンサー率49% (156/313)
お好きにダウンロードしてくださいという物しかWebで公開することはできません
- wmin-2014
- ベストアンサー率80% (8/10)
.htaccessファイルで指定したファイルの閲覧を制御する方法があるようです。 参考: 「特定のファイルだけ守る」 http://www.futomi.com/lecture/htaccess/files.html 「.htaccess活用法(5)」 http://www.shtml.jp/htaccess/data.html 試してませんので、jsonファイルの本来の動作を阻害しないかどうかはわかりませんが。
- Ogre7077
- ベストアンサー率65% (170/258)
理論的には不可能です。 されにくい方法、ならば * JSON ファイルを Base64 化する * JSON ファイルを暗号化して $.get() した後に復号化する * JSON を動的生成する仕組みにして、パスワード付の $.post() でなければ出力させない * 取得前に擬似的な「3ウェイ・ハンドシェイク」を必要とするように実装する * 画像ファイルにデータを埋め込む「電子透かし」をがんばって実装する
- muuming2001
- ベストアンサー率23% (202/847)
公開しているものを非公開にするのは理論的に不可能だと思います。 スカイツリーを建ててみんなにご覧いただくが、写真は撮らせたくない てのと一緒だと思います。
お礼
求めていたものはこれでした。 jQueryからのリクエストヘッダについては調べて分かったのですが、それでアクセス制限を掛ける方法が分かりませんでした。 これで対応できます。ありがとうございました。