仅允许使用mod_rewrite在同一域中重定向

时间:2014-11-18 02:49:27

标签: apache .htaccess mod-rewrite iis isapi-rewrite

我想将重定向限制到同一应用程序中的URL。这可能与ISAPI重写(IIS的mod_rewrite)?基本上我想防止打开重定向攻击。

一个例子是URL可能来自查询字符串或其他来源。我想检查是否允许使用该URL进行重定向,只要它在同一个域中。例如:Response.Redirect("some URL");

我是一个ASP.NET应用程序,在IIS 6下运行。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用以下内容检查查询字符串中的域,如果它是外部域,则显示403 Forbidden:

RewriteBase /
RewriteCond %{QUERY_STRING} !^.*yourdomain.com.* [NC]
RewriteRule .? - [F]

答案 1 :(得分:0)

您需要在ASP.NET端进行检查,不允许在域外进行重定向。一旦将重定向指令发送到客户端,您的服务器将永远不会再有机会进入,因为客户端将立即转到其他域。 如果您不控制此应用程序的ASP.NET代码,您可以尝试使用Helicon Ape(而不是ISAPI_Rewrite)。 Helicon Ape具有更多功能并且还提供出站响应重写,因此它可能会在应用程序发送到客户端之前拦截应用程序的“重定向”响应。有两种选择: