我目前的HTML插入/更新数据库表记录之前,编码所有用户输入的文本。 问题是,在任何后续更新,先前编码的字符串被再编码。 这个无限循环的开始吃起来的列空间很多在我的表。 我使用参数化查询对所有SQL语句,但我知道这将是安全的,只是让.NET框架处理这部分没有HTML编码?
Answer 1:
你应该在显示 ,从来没有在存储总是HTML编码用户数据。 保存在DB中的用户输入,输出上述数据时(使用参数化查询或诸如此类的东西,以防止SQL注入),然后HTML编码。 这样,你永远不会有这个问题。
HTML编码内置到ASP.NET框架真正的简单。 这是你如何做到这一点:
<!-- ASP.NET 3.5 and below -->
<%= Html.Encode(yourStuff) %>
<!-- ASP.NET 4 -->
<%: yourStuff %>
Answer 2:
我不建议在数据库中的数据进行编码。
编码无关的数据,但它在你是如何显示的数据专门针对性。 如果你想有一个客户端应用程序在未来或其他一些非HTML显示使用这些数据?
你应该将数据存储在你的表的原始数据和应用程序或服务的应用程序应该处理到任何需要的格式编码的层。
NET框架可以很容易地为你做。 不过,别忘了使用HtmlEncode
或ASP.NET 4 <%:
你应该为你需要展示是动态的任何数据来这样做。
在编码不仅会造成你今天的问题数据库,但在未来会保存它。
Answer 3:
你可以节省输入与编码 ,并在更新解码时它然后更新并重新保存使用编码 ,并在显示的时候不需要做任何事......这会给一个好处..不需要编码一次又一次的放映时间......但问题可能是你想的RowDataBound改变然后ü将不得不进行解码,然后更改和重新编码:) :)编码快乐
文章来源: HTML Encoding with ASP.NET