【问题标题】:Disable website to respond request except static files除静态文件外,禁止网站响应请求
【发布时间】:2010-11-02 21:50:45
【问题描述】:

我的 IIS 上有 2 个网站,它们在磁盘上具有相同的物理位置。示例:

www.xxx.com    path on disk : c:\www\xxx.com
img.xxx.com    path on disk : c:\www\xxx.com

我希望 img.xxx.com 只响应静态文件,如图像、css 和 js 文件。

我的主要目标是提供来自无 cookie 域的静态文件(对无 cookie 请求使用 img.xxx.com)。但是,如果我将img.xxx.com 写入浏览器,我会看到与www.xxx.com 相同的内容。我想阻止对img.xxx.com 的所有请求,除了图像、css 和 js 请求。

我不想为img.xxx.com 设置另一个文件夹,因为我很难将所有图像 url 更改为新 url。

【问题讨论】:

    标签: asp.net iis-7


    【解决方案1】:

    我认为你的想法行不通。您需要一个物理上不同的域才能拥有一个真正的“无 cookie”域。

    要保留一个无 cookie 的域来提供静态内容,请注册一个新域名并使用 CNAME 记录配置您的 DNS 数据库,该 CNAME 记录将新域指向您现有的域 A 记录。配置您的 Web 服务器以提供来自新域的静态资源,并且不允许在该域的任何位置设置任何 cookie。在您的网页中,引用静态资源 URL 中的域名。

    http://code.google.com/speed/page-speed/docs/request.html

    【讨论】:

    • 简而言之,要正确操作,您需要更改所有图片 url。
    【解决方案2】:

    我认为这个想法会奏效。通过两个不同的域名访问文件的浏览器无法知道它们共享同一个底层目录。

    唯一的问题是您需要过滤对 img.xxx.com 域中有限文件类型列表的访问。

    您可以在 IIS 级别执行此操作 - 例如,为要阻止 http://www.isapirewrite.com/ 的文件类型设置 ISAPI 重写。

    您仍然需要更改应用程序中的 URL(即在 html 中 - 从 www.xxx.com 到 img.xxx.com)。

    我认为您也可以使用 asp.net 执行此操作 - 通过在新域下和新文件夹中设置新的 asp.net 网站,然后在该网站中设置链接回原始的虚拟文件夹文件夹。然后,您可以通过新的 asp.net web.config 控制对文件类型的访问。同样,您需要更改 html 中的 url(从 www.xxx.com 到 img.xxx.com/virtual_folder)。不过我从来没有尝试过这样的事情——所以这个想法可能在某个地方存在缺陷。

    【讨论】:

    • 无 cookie 的域必须是完全不同的域...带有 cookie 的域的子域将不起作用。
    • 我绝不是这方面的专家 - 但如果我将我的 DNS 记录设置为将 img.xxx.com 指向一个 IP,并将 www.xxx.com 指向另一个 IP,那么就需要两者之间没有联系。为什么浏览器查看 img.xxx.com 甚至会考虑 www.xxx.com 的存在?所以关于子域的争论似乎不太可能——事实上 img.xxx.com 是 www.xxx.com 的“子域”?
    • 刚刚检查了几个这样做的网站 - 很常见的是 www.xxx.com 是主站点,而 static.xxx.com 是静态服务站点。所以也许我误解了这个问题?
    【解决方案3】:

    为什么不用简单的 HttpHandler 来检查每个请求的 URL,如果域是 img.xxx.com 并且文件不是静态的,则抛出错误?

    也许有一个问题,但据我所知这是可行的。

    (仅讨论“阻止所有对 img.xxx.com 的请求,除了图像、css 和 js 请求”部分,而不是无 cookie 域部分)

    【讨论】:

      猜你喜欢
      • 2016-08-17
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 2013-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多