考虑一个指向用户配置文件页面的链接。一个页面正在创建该URL,如下所示:
//Model.Name has value "<bad guy>" Html.ActionLink("foo, "ViewUser", new { id=5, title=Url.Encode(Model.Name) })
实际结果是
http://mysite/Users/5/%253cbad%2guy%253e
当导航到该URL时,服务器将生成 HTTP Error 400 - Bad Request.
HTTP Error 400 - Bad Request.
当使用 < 和 > ,但任何内容都可以来自用户,因此可以通过 Model.Name .
<
>
Model.Name
问题: 鉴于 型号、名称 可能包含Unicode字符,或者在URL中包含非法字符:
型号、名称
一种方法是对可能包含特殊字符的任何参数使用base 64编码。
请参见以下示例:
允许在ASP.Net MVC URL参数中使用特殊字符 http://gathadams.com/2009/01/06/allowing-special-characters-forward-slash-hash-asterisk-etc-in-aspnet-mvc-urls/