Фильтровать действия на основе UserAgent - PullRequest
3 голосов
/ 30 декабря 2011

Есть ли простой способ применить фильтр к методам действий в ASP.NET MVC3 против определенных типов пользовательских агентов?У меня есть хакерская сеть, которая жует нас по-разному.Я могу играть в кошки-мышки с IP-адресами, подсетями и т. Д. На уровне сети / брандмауэра, но хотел бы добавить гарантии уровня приложения в отношении таких вещей, как Squid и т. Д., Поскольку у них, как представляется, возникают определенные закономерности.Не уверен, как это повлияет на производительность, но удивлялся, если бы кто-то делал такой подход.

заранее спасибо.Дуг

1 Ответ

3 голосов
/ 30 декабря 2011

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

public class UserAgentActionFilterAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        if (filterContext.HttpContext.Request.UserAgent.ToLowerInvariant().Contains("mozilla"))
        {
            filterContext.Result = new HttpStatusCodeResult(403);
        }

        base.OnActionExecuting(filterContext);
    }
}

Просто помните, что пользовательские агенты могут быть подделаны, если они понимают, что именно так их блокируют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...