Предположим, у меня есть сайт ASP.Net MVC. Как заблокировать методы контроллера (возможно, с помощью атрибута в действии), чтобы HTTP_REFERER должен указывать на мой сайт?
Расширить:
У меня есть много JSON-действий на моих контроллерах, помеченных как [Авторизовать], чтобы не допустить проникновения неопытного пользователя.
Кто-то подлый создает веб-страницу злоумышленника и отправляет ее по электронной почте пользователю, вошедшему на мой сайт . Эта страница содержит скрипт, который извлекается из моего действия JSON Controller. Это заставляет браузер пользователя отправлять зарегистрированный файл cookie в мой метод авторизованного контроллера, возвращая данные этого пользователя обратно на веб-страницу злоумышленника, которую они затем могут прочитать и передать в другое место.
Если бы я мог просто заблокировать эти запросы, чтобы HTTP_REFERER указывал на мой сайт, межсайтовая атака по запросу JSON была бы предотвращена. Какой самый простой способ?
Обратите внимание, что я, очевидно, не хочу блокировать все запросы, JSON, Авторизовано или нет - людям по-прежнему необходимо иметь возможность ссылаться на сайт. Но никакие авторизованные JSON-запросы никогда не должны быть доступны ни с чего, кроме страниц нашего сайта.
* Да, я придумал это слово.