ISO Latin-1代码的危险请求值?

时间:2012-02-29 20:54:12

标签: asp.net html character-encoding

我有一个Asp.net表单(runat = Server)

我试图找出HTML实体和ISO Latin-1代码之间的区别 - 为什么一个Do会导致异常而另一个Isnt。

我有输入和按钮

     <input type="text"   value="<d"/>
     <asp:Button ID="s" runat="server" Text="press" />

enter image description here

当我按提交时 - 它与Exception一致,这很好。 enter image description here

解决问题的一种方法是使用encodeUriComponent:

所以把价值放在:

 value="%3Cd"/>

很好,提交时没有说明。

另外,正如我们所知 - 如果我放 &gt;&lt;(这是html实体)它不会出现异常。 (它在Html世界中有其他作用 - 显示'&lt;''&gt;' - 而不是试图将它们解析为html ......)

enter image description here

(没有例外 - 第二次按下 - 因为当它从服务器返回时 - 文本框显示<d这是不好的......

不允许转到ISO Latin-1 code like here

enter image description here

现在让我们试着代替<d ----&gt; &#60;d

enter image description here

然后爆炸

enter image description here

1)为什么我在拉丁语代码中得到异常而不是在html实体中?

1)他们之间有什么区别?

2)我何时应该使用其中一种?

修改

我知道我可以通过设置validateRequest = false来禁用检查。 但我的问题与此无关。

1 个答案:

答案 0 :(得分:1)

您的拉丁语示例包含&amp;#。这些正是触发验证错误What characters or character combinations are invalid when ValidateRequest is set to true?的字符。所以这并不奇怪。