我得到了一个网站,JavaScript文件正在加载一个JSON文件(使用getJson)到一个选择元素的选项中,基于先前的选择选项。但与此同时,public可以直接访问该json文件。我只希望服务器可以访问此文件,并在theselect元素加载相应的选项。但我不希望公众可以直接访问该json文件(避免他们下载等..)我该怎么做?通过htaccess?还是别的什么我在htaccess中尝试了'FILES'规则,但服务器也无法访问json文件。
jexiocij1#
JavaScript在客户端运行,因此您的访问者可以获得javascript使用的任何资源。如果你想隐藏任何东西,你需要通过服务器端生成来替换你的JavaScript代码。
mepcadol2#
您无法保护JSON数据。如果公众无法访问数据,那么您的页面也无法访问它。
mjqavswn3#
您可以在JSON文件的顶部检查请求者的IP,如果它不是您的服务器,则退出这是一个例子
if($_SERVER['REMOTE_ADDR'] != '190.180.0.1') exit ('You can not use this file');
当然你必须用你的服务器IP代替IP我错过了这一部分(JavaScript文件正在加载)确定上面的代码将不工作,因为java脚本是客户端,所以如果你阻止了所有的请求,除了你的服务器,那么你的用户也不能加载这个文件
gzjq41n44#
您无法真正保护已发送到客户端浏览器的数据。一个有决心的用户将能够找到它。因此,最好的选择是在将数据发送到客户端之前在服务器上执行过滤和其他逻辑。
oprakyz75#
如果你运行Apache,你可以使用mod_rewrite。我不确定,但我认为规则应该是这样的,RewriteRule ^(myfile.json)- [F,L,NC]
bvpmtnay6#
如果数据库应该从客户端读取,那么通过加密进行访问限制可以工作-只需加密JSON的整个内容并在客户端中使用用户密码进行解密。只要我们有加密的权利。
6条答案
按热度按时间jexiocij1#
JavaScript在客户端运行,因此您的访问者可以获得javascript使用的任何资源。如果你想隐藏任何东西,你需要通过服务器端生成来替换你的JavaScript代码。
mepcadol2#
您无法保护JSON数据。如果公众无法访问数据,那么您的页面也无法访问它。
mjqavswn3#
您可以在JSON文件的顶部检查请求者的IP,如果它不是您的服务器,则退出
这是一个例子
当然你必须用你的服务器IP代替IP
我错过了这一部分(JavaScript文件正在加载)
确定上面的代码将不工作,因为java脚本是客户端,所以如果你阻止了所有的请求,除了你的服务器,那么你的用户也不能加载这个文件
gzjq41n44#
您无法真正保护已发送到客户端浏览器的数据。一个有决心的用户将能够找到它。因此,最好的选择是在将数据发送到客户端之前在服务器上执行过滤和其他逻辑。
oprakyz75#
如果你运行Apache,你可以使用mod_rewrite。我不确定,但我认为规则应该是这样的,RewriteRule ^(myfile.json)- [F,L,NC]
bvpmtnay6#
如果数据库应该从客户端读取,那么通过加密进行访问限制可以工作-只需加密JSON的整个内容并在客户端中使用用户密码进行解密。只要我们有加密的权利。