[ASP.Net] URL 編碼型式資料無效

  好久沒更新這邊的資料,因為之前工作頗忙,私人活動也佔據掉自己不少的時間,不過最近想調整自己的時間使用,希望能學更多東西,也希望能開始整頓之前自己留下的各種坑。
  今天講的其實是我之前就遇到過的 URL 編碼型式資料無效 的錯誤,這錯誤的原因為 Request.Form 的項目太多導致(預設上限1000筆資料),錯誤畫面如下:

  初次遇到時,是滿頭的問號,後來 Google 了才知是傳入的項目太多導致,修正方法很簡單,只要在 appSettings 中加上以下項目
<appSettings>
  <add key="aspnet:MaxHttpCollectionKeys" value="2000" />
</appSettings>

即可以將項目上限從預設的 1000 筆上限拉到 2000 了,就是這麼簡單
但必需要提醒的是,會有這個限制一定有其原因,我一開始本來是以為為了保護 Memory 上容量使用的限制,但後來看了一下 Ref[3] ,我猜錯了XD,他是有資安議題上的考量,所以在進行值的設定時請更加注意,設定一個自己需要的大小即可,如果仍然會超過,我的建議會是是否更改設計,例如使用 JavaScript 將值整併後再傳遞給 Server 端處理。

Reference:
[1] http://silanors.blogspot.tw/2013/05/aspnet-url.html
[2] https://dotblogs.com.tw/rainmaker/2013/08/20/115045
[3] https://blog.miniasp.com/post/2012/01/01/Efficient-Denial-of-Service-Attacks-on-Web-Application-Platforms.aspx
[4] http://www.gss.com.tw/images/stories/epaper_GSS_security/pdf/epaper_gss_security_0061.pdf
[5] http://burningcodes.net/%E4%BD%BF%E7%94%A8%E4%B8%AD%E9%97%B4%E7%9B%B8%E9%81%87%E6%B3%95%E6%9F%A5%E6%89%BEdjbx33x%E7%AE%97%E6%B3%95%E7%9A%84hash%E5%86%B2%E7%AA%81/

留言

這個網誌中的熱門文章

DB 資料庫呈現復原中

Outlook 刪除大量重覆信件

[VB.Net] If vs IIf ,兩者的差異