HttpUtility.HtmlAttributeEncode的缺点

时间:2010-03-17 14:56:17

标签: c# .net security

我必须对字段进行编码,以确保脚本注入安全。

我知道我可以使用HttpUtility.HtmlEncode和Decode,但这种HI-ASCII字符的方法超出了数据库中字段大小的范围,我不想更改数据字段列的大小。

相反,如果我使用HttpUtility.HtmlAttributeEncode,它工作正常,因为它不编码HI-ASCII字符。

它是否安全可能是它的缺点。

2 个答案:

答案 0 :(得分:7)

来自HttpUtility..::.HtmlAttributeEncode Method (String)

  

HtmlAttributeEncode方法仅将引号(“),&符号(&)和左尖括号(<)转换为等效的字符实体。它比HtmlEncode方法快得多。

     

HtmlAttributeEncode方法的字符串结果应仅用于双引号属性。使用带有单引号属性的HtmlAttributeEncode方法时,可能会出现安全问题

但是,通常的做法是将编码输入存储在数据库中。很难预测编码版本会变得多久。

更好的是直接存储输入,只在需要时编码(当你用HTML输出时)。

答案 1 :(得分:-1)

不进行编码存储数据可能会导致SQL注入。