2011-12-29 12 views
3

ASP.NET MVC3のアクションメソッドに特定のタイプのUserAgentに対してフィルタを適用する簡単な方法はありますか?私は、さまざまな方法で私たちに噛み砕くハッキングネットワークを持っています。ネットワーク/ファイアウォールレベルではIP、サブネットなどで猫やマウスをプレイできますが、特定のパターンが現れるように見えるので、イカなどのようなものに対するアプリレベルの保証を注入したいと考えています。どのようにこれがパフォーマンスに影響するかはっきりしていませんが、誰かがこのアプローチを行っているのか疑問に思っていますUserAgentに基づくフィルタアクション

ありがとうございます。 doug

答えて

3

カスタムアクションフィルタを作成する必要があります。彼らはそれは彼らがブロックされている方法で実現する場合だけでユーザーエージェントを偽造することができることを覚えておいてください

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); 
    } 
} 

:ここで要求するユーザエージェントはMozillaベースのブラウザされている場合、禁止HTTP 403を返す1の例であります。

+0

このコードはどこにありますか?コントローラーで?またはGlobal.asax.cs? – Civilian

+1

そのコードはあなたが望むところに行くでしょう。それは単なるクラス定義です。アトリビュートは、グローバルasaxのコントローラ、アクション、またはレジスタグローバルフィルタメソッドのいずれかに移動する必要があります。 – doogle

+0

ここに基地を呼び出す理由はありますか? – beruic