1

我正在通过 ajax 加载特定文件,但实际上如何防止人们直接访问这些文件?

顺便说一句,所有这些特定文件都位于:/ajax/目录

这只适用于.htaccess? 如果是,如何?

4

3 回答 3

0

您可以尝试检查引荐来源网址,如果没有,则为直接访问。这不是防弹的,因为推荐人可能是伪造的。

于 2011-03-27T09:49:03.193 回答
0

我正在通过 ajax 加载特定文件,但实际上如何防止人们直接访问这些文件?

你不能可靠。服务器无法将 Ajax 调用与任何其他调用区分开来。

但是,有一些迹象表明呼叫通常是 Ajax 呼叫。(请记住,这都可以随时被客户端伪造。)在这个问题中讨论了它们:如何区分 Ajax 请求和普通 Http 请求?

于 2011-03-27T09:49:49.310 回答
0

你不能,至少不能以可靠的方式。如果浏览器可以使用 AJAX 调用访问这些文件,则可以访问它们。

你可以做一些 hacky 的事情,比如在你的 AJAX 调用中设置一个特殊的 Header 并在服务器中检查它们,但这很容易被伪造。推荐人检查也是如此。

如果您需要某种访问控制,则必须使用服务器端代码来验证请求。由于 AJAX 请求来自浏览器,它们将携带域 cookie(如果已设置),因此您可以检查用户是否已登录。或者只返回用户应该能够看到的数据。

请记住:如果客户端代码可以访问数据,则攻击者始终可以访问数据。绝对没有办法阻止这种情况。

于 2011-03-27T09:49:49.717 回答