我必须对字段进行编码,以确保脚本注入安全。
我知道我可以使用HttpUtility.HtmlEncode和Decode,但这种HI-ASCII字符的方法超出了数据库中字段大小的范围,我不想更改数据字段列的大小。
相反,如果我使用HttpUtility.HtmlAttributeEncode,它工作正常,因为它不编码HI-ASCII字符。
它是否安全可能是它的缺点。
答案 0 :(得分:7)
来自HttpUtility..::.HtmlAttributeEncode Method (String):
HtmlAttributeEncode方法仅将引号(“),&符号(&)和左尖括号(<)转换为等效的字符实体。它比HtmlEncode方法快得多。
HtmlAttributeEncode方法的字符串结果应仅用于双引号属性。使用带有单引号属性的HtmlAttributeEncode方法时,可能会出现安全问题。
但是,通常的做法是将编码输入存储在数据库中。很难预测编码版本会变得多久。
更好的是直接存储输入,只在需要时编码(当你用HTML输出时)。
答案 1 :(得分:-1)
不进行编码存储数据可能会导致SQL注入。