2017年2月19日日曜日

デフォルトで許可されていないURLの文字

例えば、ブログなんかをイメージしてもらえればよいのだがタグのリンクを以下のようにしたとする

/Blog/Tags/ASP.NET
/Blog/Tags/SQL+Server

.や半角スペースのエンコードした+なんかが含まれているとアクセスするとエラーになる。

■.を許可する。
認識するために/Web.configに、以下を追加する

  
    
      
    
  


まずは対象のパスを指定 今回は/Blog/Tags/の次の部分を対象とするので /Blog/Tags/* としてある。


■+を許可する
+を含んだパスにアクセスすると
以下のエラーが出る
要求フィルター モジュールが、ダブル エスケープ シーケンスを含む要求を拒否するように構成されています。

可能性のある原因:
要求にダブル エスケープ シーケンスが含まれていました。要求フィルターはダブル エスケープ シーケンスを拒否するように Web サーバーで構成されています。

対処方法:
applicationhost.config または web.confg ファイルにある configuration/system.webServer/security/requestFiltering@allowDoubleEscaping 設定を確認します。

以下設定を追加すると許可される

  
    
      
    
  

0 件のコメント:

コメントを投稿