我有一个网站,javascript文件正在根据之前的select选项将一个json文件(使用getJson)加载到一个select元素的选项中。
但与此同时,public可以直接访问该json文件。
我只希望服务器可以访问此文件并在theselect元素中加载相应的选项。但我不希望公众可以直接访问该json文件(避免他们下载等等)。
我该怎么做?通过htaccess?或者其他?我在htaccess中尝试了'FILES'规则,但服务器也无法访问json文件。
答案 0 :(得分:5)
Javascript在客户端运行,因此您的访问者可以获得javascript使用的任何资源。 如果你想隐藏任何东西,你需要用服务器端代替你的javascript代码。
答案 1 :(得分:0)
您无法真正保护已发送到客户端浏览器的数据。确定的用户将能够找到它。因此,您最好的选择是在将数据发送到客户端之前在服务器上执行过滤和其他逻辑。
答案 2 :(得分:0)
您无法保护json数据。如果公众无法访问数据,那么您的页面也无法访问它。
答案 3 :(得分:0)
您可以在json文件的顶部检查请求者的ip 如果它不是你的服务器,那么退出
这是示例
if($_SERVER['REMOTE_ADDR'] != '190.180.0.1')
exit ('You can not use this file');
确定你必须用服务器ip替换ip
我错过了这部分(并加载了javascript文件)
确保上述代码不起作用,因为java脚本是客户端 因此,如果您阻止了除服务器之外的所有请求,那么您的用户也无法加载此文件
答案 4 :(得分:0)
如果你正在运行Apache,你可以使用mod_rewrite。我不确定,但我认为规则看起来像RewriteRule ^(myfile.json) - [F,L,NC]