【问题标题】:How to deny direct access to an xml file in the server如何拒绝直接访问服务器中的 xml 文件
【发布时间】:2011-04-10 14:13:46
【问题描述】:

我有一个 html 文件 index.html(在我的服务器上说 abc.com),它像

一样访问 xyz.js
<script type="text/javascript" src="xyz.js"></script>

javascript 文件依次访问 data.xml 文件。 index.html,xyz.jsdata.xml 文件在同一个文件夹中。

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

我该怎么做(最好使用 .htaccess

【问题讨论】:

    标签: javascript xml ajax security


    【解决方案1】:

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

    要实现您的目标,您需要将程序架构一分为二:

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

    【讨论】:

      【解决方案2】:

      我假设您的意思是 index.html 通过脚本标记引用 .js 文件,然后 js 使用 XMLHttpRequest 或类似的东西读入 xml。即:js 和 xml 都需要被浏览器读取,但您希望将其限制为仅以“批准”的方式。

      如果这是正确的,那么你不能。您可以尝试查看Referer,但它不可靠且容易被欺骗。即使没有欺骗,许多浏览器也有调试工具,可以很容易地查看每个已执行的 GET 的结果。

      最好习惯这样一个事实,即如果用户足够努力,您发送到浏览器的任何内容都可能被用户看到。

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

      【讨论】:

        猜你喜欢
        • 2019-02-22
        • 1970-01-01
        • 2014-08-28
        • 2015-07-10
        • 1970-01-01
        • 2023-03-18
        • 1970-01-01
        • 2014-05-11
        • 1970-01-01
        相关资源
        最近更新 更多