2014-11-18 3 views
0

Я хотел бы ограничить любые переадресации на URL-адреса одного и того же приложения. Возможно ли это с помощью ISAPI Rewrite (mod_rewrite для IIS)? В основном я хочу предотвратить атаки открытого перенаправления.Разрешать только переадресации в пределах одного домена с mod_rewrite

В качестве примера можно привести URL-адрес из строки запроса или другого источника. Я хочу проверить, что любое использование этого URL-адреса для перенаправления разрешено только в том случае, если оно находится в пределах одного домена. Например: Response.Redirect("some URL");

Mine это приложение ASP.NET, работает под IIS 6.

ответ

0

Вы можете попробовать использовать следующую команду для проверки домена в строке запроса и показать 403 Forbidden, если это внешний один:

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

Вам нужно будет выполнить эту проверку на стороне ASP.NET, чтобы не разрешать перенаправление за пределами вашего домена. Когда команда перенаправления отправляется клиенту, ваш сервер никогда не получит еще один шанс столкнуться, потому что клиент немедленно перейдет в другой домен. Если вы не контролируете код ASP.NET этого приложения, вы можете попробовать использовать Helicon Ape (вместо ISAPI_Rewrite). Helicon Ape имеет больше возможностей, а также предлагает переадресацию исходящих ответов, поэтому он может перехватить «перенаправление» ответа вашего приложения до его отправки клиенту. Доступны два варианта: