ASP.NET。隐藏整个网站结构。可能吗?

时间:2010-11-15 11:34:55

标签: asp.net directory-structure directory-listing

我猜其他所有人都希望相反,但我需要隐藏ASP.NET网站的“目录”结构。

因此我想到

  1. 使用robots.txt,如下所示......

    用户代理:* 禁止:/

  2. 使用网址重写,制作虚假路径

  3. 禁用目录浏览。 (目录列表被拒绝......)

  4. 使用.ashx提供图片。

  5. 您可能建议的其他方式。

  6. 换句话说,我不喜欢有“downloader-structrure reader”的人剥离我的网站。

    如您所见,缺少sekurity标签:)

    P.S。我不关心SEO

2 个答案:

答案 0 :(得分:2)

如果您希望用户能够浏览您的网站,您显然需要指向其他网页的链接。要(尝试)使抓取工具难以使用这些链接,您可以尝试在javascript中动态呈现所有链接。这意味着没有像浏览器那样完整DOM渲染的机器人将无法提取链接。但是,当然有人可以看看你的网站并构建一些东西,如果它们如此倾向就会解析链接。

如果要隐藏用户和/或机器人的目录结构,那么是的,您必须实现某种URL重写:

Outbound: /assets/images/image.jpg -> /somecode.jpg
Inbound:  /somecode.jpg -> /assets/images/image.jpg

否则,他们将能够在浏览器中检查链接(无论是静态还是动态呈现)并确定目录结构。

答案 1 :(得分:1)

wget -r这样的网站下载器无论如何都会有效。它遵循链接而不关心目录(除了可以限制深度的事实)。如果您想要排除像Google这样的合法抓取工具,可以使用robots.txt。 wget和流氓爬行者不关心它。

唯一真正好的解决方案是要么需要登录(但仍然无法保护您免受那些只使用wget下载整个网站的人;他们只会向其提供登录信息/会话ID或者用令人讨厌的CAPTCHA(快速合法用户的烦恼)或使整个站点使用JavaScript / AJAX显示/加载内容来混乱你的内容。这使得用户体验更好(如果操作正确)并有效锁定大多数/所有抓取工具。