0

我可能在这里完全错误的树,但我想做的是保护我的 .js 页面,如果有人试图通过 http 直接访问它们,让它们返回 403 Forbidden http 错误状态页面。我使用它们来支持我的 index.html 页面,但希望它们保持隐藏状态。

我的 ISP 的帮助台人员基本上说他们不知道这是否可能,但它可能是您可以使用 web.config 文件执行的操作(这不是我以前使用过的东西)。

任何帮助都将不胜感激 - 我对这个有点超出了我的舒适区

4

2 回答 2

2

如果有人试图通过 http 直接访问它们,我想 [...] 通过让它们返回 403 Forbidden http 错误状态页面来保护我的 .js 页面。

请注意,如果您包含一些资源,例如通过<script>HTML 中的 -tag 的脚本或通过 -tag 的图像<img>,浏览器只会运行另一个 HTTP 请求来获取该资源。整个通信已经通过 HTTP 进行。

虽然浏览器在请求其他资源时可能会在其 HTTP 请求中包含其他详细信息,例如Referer-header,但绝对不需要这样做。因此,如果您注意Referer-header,请注意您可能会锁定其他未在其请求中发送Referer-header的有效客户端。

另请注意,这不会为您提供任何保护。人们可以在请求事物时简单地构造 HTTP 标头,因此您的服务器允许的“伪造”请求(因为它认为它们是正确的)根本不是问题。即使没有那个;您告诉客户用于使您的网站正常运行的每个资源都将由客户下载。在那之后,客户可以用它做任何他想做的事情。它可以将它们缓存在硬盘上,或者允许用户快速查看它而无需运行另一个请求。

因此,如果您想这样做是为了保护您的代码,那就忘掉它,并通过不添加非最佳保护来使每个人都更容易。您放在网络上的代码可能难以阅读,但如果您希望用户看到最终结果,那么您也可以在同一步骤中提供您的代码。

于 2013-06-01T17:13:21.200 回答
1

在 php 中,你可以这样做:

header("HTTP/1.0 403 Forbidden");
于 2013-06-01T16:58:30.393 回答