1

我有 2 个字段一个标签和一个文本框。

Q1。在将数据保存到数据库或在 aspx 页面中显示时应该进行 HTML 编码吗?

Q2。HTML 编码的标签文本在浏览器中正确显示,如 asd < pqr 但在文本框中显示 < 符号的 ascii 值。

由于 asp.net 中的文本框已经默认编码,我们应该在页面上显示之前对其进行解码吗?

Q3.如果文本框值在显示时被解码,那么安全影响是什么?

Q4。如果我在 edittemplateitem.how 中有两种方式绑定的文本框来在显示时解码它的值。

4

1 回答 1

2

对于给定的目标系统,转义应该尽可能晚地完成,这与验证相反,验证应该尽快完成。应用于您的问题,这将意味着:

Q1:输入到数据库时不要转义(HTML编码),而是保留原文。只有在 HTML 表单上显示文本时,才应该进行转义。为了减轻 SQL 注入,请使用准备好的语句,或者对 SQL 进行转义,而不是对 HTML 进行转义。

Q2:因为我们没有提前转义文本,所以ASP可以对原文进行转义,不会出现ascii码。

Q3:不需要解码,因为我们还有原文。

Q4:据我所知,ASP 应该为您处理这个问题,您的应用程序应该只需要处理原始文本,并且可以将 HTML 转义到框架中。

于 2018-07-04T12:52:19.377 回答