对于我的 ASP.NET MVC 网站,我想允许访问某个页面,前提是用户来自另一个特定页面上的链接(该页面可能来自完全不同的 URL)。
例子:
我想允许用户访问www.MySite.com/thispage,前提是他们来自www.MySite.com/thatpage或www.MyOtherSite.com/thatpage上的链接
如何实现?
对于我的 ASP.NET MVC 网站,我想允许访问某个页面,前提是用户来自另一个特定页面上的链接(该页面可能来自完全不同的 URL)。
例子:
我想允许用户访问www.MySite.com/thispage,前提是他们来自www.MySite.com/thatpage或www.MyOtherSite.com/thatpage上的链接
如何实现?
您需要检查HTTP_REFERER标头
你可以这样做
Request.UrlReferrer
也就是说,这不是真正的安全。有人可以手动设置浏览器的引用标头。
如果这只是防止盗链的一种手段,那很好。但是,如果您只是使用它来阻止人们获取私人/安全信息,那么您将需要实现某种真实形式的身份验证/授权。
你可以用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 非常敏感,需要完全正确,否则可能会使您的整个站点出错。
---并确保您事后进行测试以确保一切正常。您不想意外阻止所有访问您网站的流量。
您可以随时跟踪他们访问的站点,就像大型机构所做的那样,如果它们不是来自您的乌托邦,则会阻止它们:)