我必须对字段进行编码,以确保脚本注入的安全。
我知道我可以使用HttpUtility.HtmlEncode和Decode,但是用于HI-ASCII字符的此方法超出了数据库中字段大小的范围,并且我不想更改数据字段列的大小。
相反,如果我使用HttpUtility.HtmlAttributeEncode,它可以正常工作,因为它不编码HI-ASCII字符。
安全吗?它的缺点是什么?
最佳答案
从HttpUtility..::.HtmlAttributeEncode Method (String):
HtmlAttributeEncode方法仅将引号(“),&符(&)和左尖括号(HtmlAttributeEncode方法的字符串结果应仅用于双引号属性。当将HtmlAttributeEncode方法与单引号属性一起使用时,可能会出现安全问题。
但是,将编码后的输入存储在数据库中并不是通常的做法。很难预测编码版本将持续多长时间。
更好的方法是直接存储输入,并且仅在需要时(在以HTML输出时)对其进行编码。
关于c# - HttpUtility.HtmlAttributeEncode的缺点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2463251/