我想隐藏 json 文件以防止公共访问。我该怎么做?

问题描述 投票:0回答:6

我有一个网站,javascript 文件正在根据上一个选择选项将 json 文件(使用 getJson)加载到一个选择元素的选项中。

但与此同时,公众可以直接访问该 json 文件。

我只希望服务器可以访问该文件并在 select 元素中加载相应的选项。但我不希望公众可以直接访问该 json 文件(避免他们下载等..)

我该怎么做?通过htaccess?或者其他什么?我在 htaccess 中尝试了“FILES”规则,但服务器也无法访问 json 文件。

php json apache .htaccess
6个回答
7
投票

Javascript在客户端运行,因此您的访问者可以获得Javascript使用的任何资源。 如果你想隐藏任何东西,你需要通过服务器端生成来替换你的javascript代码。


1
投票

您无法保护 json 数据。如果公众无法访问数据,那么您的页面也无法访问它。


1
投票

您可以在 json 文件顶部检查请求者的 ip 如果不是您的服务器,则退出

这是例子

if($_SERVER['REMOTE_ADDR'] != '190.180.0.1')
exit ('You can not use this file');

并且确保你必须将 ip 替换为你的服务器 ip

我错过了这一部分(并且 javascript 文件正在加载)

确保上面的代码不会工作,因为java脚本是客户端 因此,如果您阻止了除服务器之外的所有请求,那么您的用户也无法加载此文件


0
投票

您无法真正保护发送到客户端浏览器的数据。坚定的用户将能够找到它。因此,最好的选择是在将数据发送到客户端之前在服务器上执行过滤和其他逻辑。


0
投票

如果您正在运行 Apache,您可以使用 mod_rewrite。我不确定,但我认为规则看起来像,RewriteRule ^(myfile.json) - [F,L,NC]


0
投票

如果应该从客户端读取数据库,则通过加密进行访问限制可能会起作用 - 只需加密 JSON 的整个内容并使用用户密码在客户端中解密即可。只要我们仍然拥有加密的权利。

© www.soinside.com 2019 - 2024. All rights reserved.