【问题标题】:How to prevent users from accessing files from URL?如何防止用户从 URL 访问文件?
【发布时间】:2014-06-16 08:00:38
【问题描述】:

我使用 javascript 来获取 xml 数据或 MySQL 数据,如您所知,我应该使用一些 ajax 代码来执行此操作(调用代理 php 代码),如下所示:

var url = 'include-xml/leagues.xml'; 
$.ajax({
    type: "POST",
    url: url,
    dataType: "xml",
    success: parseNamesMidnight
    });

但我的问题是,如果有人尝试直接从 URL 访问文件。有没有办法阻止人们访问我用作代理的文件?

【问题讨论】:

  • 没有。浏览器可以用 Javascript 做的任何事情都可以由用户手动完成。
  • 只是评论:请注意,使用 Inspect Element,用户可以随时访问 ajax 流量。
  • 您可以通过checking the X-Requested-With request header 进行一些缓解,如果不存在则拒绝;恕我直言,不值得努力。
  • 当然,如果这是会员服务,您应该使用会话管理将其锁定。

标签: javascript ajax file-access


【解决方案1】:

不是真的。 Web 服务就像您可以放在网络上的任何其他东西一样:当您不希望世界上的每个人都访问您的数据时,不要将其放在公共网站上。

您可以让您的网络服务检查用户 Referer-header 并仅处理来自您网站的请求。但是这个header是可选的,由user-agent提供,所以它可以被非法用户伪造或被合法用户省略,所以它不是一个可靠的方法。

您还可以让您的网络服务使用用户名和密码进行身份验证。这至少会限制对注册用户的访问,并允许您控制每个用户可以访问哪些数据。但它不会阻止具有登录凭据的用户在没有您的网站的情况下访问网络服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-28
    • 1970-01-01
    • 2022-09-30
    • 2016-03-04
    • 2012-06-08
    相关资源
    最近更新 更多