2012-09-03 111 views
0

我有這樣的代碼來生成編碼的URL將導致500錯誤

<script type="text/javascript"> 
    $(function() { 

     var selectedAmenities = ""; 

     function amenitiesLog(message) { 
      $("<div/>").text(message).appendTo("#amenitiesLog"); 
      $("<br/>").text("").appendTo("#amenitiesLog"); 
      $("#amenitiesLog").scrollTop(0); 

      selectedAmenities = document.getElementById("amenitiesLog").innerHTML; 
     } 

     $("#Amenities").autocomplete({ 
      //source: "/Results/GetAmenities", 
      source: function (request, callback) { 
       var url = "/Results/GetAmenities?selected=" + selectedAmenities + '&term=' + request.term; 
       $.getJSON(url, callback); 
      }, 
      minLength: 3, 
      select: function (event, ui) { 
       if (ui.item != null) 
        amenitiesLog(ui.item.value); 
      } 
     }); 
    }); 
</script>​​​​​ 

這將導致此網址,並呼籲

http://localhost:63320/Results/GetAmenities?selected=%3Cdiv%3EAir%20conditioning%3C/div%3E%3Cbr%3E&term=abc 

我在Firebug得到的錯誤是這個

A potentially dangerous Request.QueryString value was detected from the client (selected=&quot;&lt;div&gt;Air conditionin...&quot;). 

解決辦法是什麼?

感謝,

薩欽

+1

你真的需要在你的GET參數上傳遞HTML代碼嗎? – bfavaretto

回答

1

我有一些類似的一次,我必須聲明一下我的無效的URL字符是。我在web配置爲這樣做:

<system.web> 
    <httpRuntime requestValidationMode="2.0" executionTimeout="600" requestPathInvalidCharacters="&lt;,&gt;,*,%,\" relaxedUrlToFileSystemMapping="true" /> 
</system.web> 

其中「requestPathInvalidCharacters」包含無效字符,所以在我的情況,我刪除了冒號,因爲我需要這在我的網址。

這對我有效,但對於這裏是否存在一些需要考慮的安全風險,我不知道。