如何拒绝直接访问服务器中的xml文件

时间:2010-09-10 05:32:37

标签: javascript xml ajax security

我有一个html文件 index.html (在我的服务器中说abc.com)可以访问 xyz.js ,如

<script type="text/javascript" src="xyz.js"></script>

javascript文件依次访问 data.xml 文件。 文件 index.html,xyz.js data.xml 位于同一文件夹中。

如果用户输入,我如何拒绝直接访问 xyz.js data.xml 浏览器中的 abc.com/xyz.js abc.com/data.xml 。 不用说 index.html 必须能够访问这些文件。

我该怎么做(最好用 .htaccess

2 个答案:

答案 0 :(得分:4)

我假设您的意思是index.html通过脚本标记引用.js文件,然后js使用XMLHttpRequest或类似内容读取xml。即:js和xml都需要浏览器可读,但你想限制它只能以“批准”的方式。

如果那是对的,那么你就不能。您可以尝试查看Referer,但它不可靠且易于欺骗。即使没有欺骗,许多浏览器都有调试工具,可以轻松查看已执行的每个GET的结果。

最好习惯这样一个事实,即如果用户努力工作,那么发送给浏览器的任何内容都可能被用户查看。

我认为对于JavaScript,如果您有这种倾向,可以使用混淆器工具。对于XML,您无能为力。我想你可以加密它,但这很容易破解,因为你的js代码必然包含解密例程和密钥。

答案 1 :(得分:0)

如果您确实需要保护数据,则需要将程序的敏感部分实现为在服务器上而不是在客户端中运行。然后,您可以将数据源完全保留在公共Web空间之外。如果客户端(浏览器)可以访问原始数据,那么用户也是如此(即使你强迫他们通过多个步骤来获取它)。

为了实现您的目标,您需要将程序架构分成两部分:

  • 非敏感部分以javascript格式在浏览器中运行
  • 敏感部分在服务器上运行.net / java / php / ruby​​ / python等等