1

对于我的 ASP.NET MVC 网站,我想允许访问某个页面,前提用户来自另一个特定页面上的链接(该页面可能来自完全不同的 URL)。

例子:

我想允许用户访问www.MySite.com/thispage,前提他们来自www.MySite.com/thatpagewww.MyOtherSite.com/thatpage上的链接

如何实现?

4

2 回答 2

3

您需要检查HTTP_REFERER标头

你可以这样做

Request.UrlReferrer

也就是说,这不是真正的安全。有人可以手动设置浏览器的引用标头。

如果这只是防止盗链的一种手段,那很好。但是,如果您只是使用它来阻止人们获取私人/安全信息,那么您将需要实现某种真实形式的身份验证/授权。

于 2013-09-09T02:09:15.387 回答
0

你可以用Referer来限制它,但是这很容易被操纵,所以如果这对你很重要......我会走另一条路。

您可以做的是使用 .htaccess 来防止传入的引用链接到达您的网站。您可以完全拒绝来自相关站点或链接的传入流量。或者,也许您只是将来自站点的传入流量或链接重定向或转发到其他地方。

只要您的主机启用了 mod_rewrite,这可以应用于任何带有 .htaccess 的网站。

如果您使用 Dolphin 并且它安装在您的 root/main/http docs/public_html 目录中,那么您将添加到:yoursite()com/.htaccess

如果您使用 Dolphin 并且它安装在子文件夹/子目录中,那么您将添加到:yoursite()com/dolphin-directory/.htaccess

在 RewriteEngine 行之后添加到 .htaccess 文件,如下所示:

重写引擎开启

RewriteCond %{HTTP_REFERER} baddomain.com [NC] RewriteRule .* - [F]

要从不需要的站点转发或重定向流量或链接到其他地方,请添加:

重写引擎开启

RewriteCond %{HTTP_REFERER} baddomain.com [NC] RewriteRule .* http://en.wikipedia.org/ [R,L]

注意:-将 RewriteCond 行:baddomain.com 更改为您要阻止的链接或站点。- 将 RewriteRule 行:http ://en.wikipedia.org/更改为您想要重定向或转发到的链接或站点。

--请务必在编辑之前下载并备份您的原始 .htaccess 文件。Htaccess 非常敏感,需要完全正确,否则可能会使您的整个站点出错。

---并确保您事后进行测试以确保一切正常。您不想意外阻止所有访问您网站的流量。


您可以随时跟踪他们访问的站点,就像大型机构所做的那样,如果它们不是来自您的乌托邦,则会阻止它们:)

于 2013-09-09T02:16:12.733 回答