【发布时间】:2010-12-04 03:09:42
【问题描述】:
我有一个应用程序,用户可以在其中将 HTML 和 ASP 代码的 sn-ps 存储在数据库中。问题是,当我动态填充 textarea 控件时,HTML sn-p 中可能包含的所有各种字符都会导致页面无法正确呈现。
有人可以指出在输出到浏览器之前剥离/替换各种字符的指南/操作方法吗?
我是否要去掉尖括号并用替代字符替换?我是否强制我的用户输入 而不是尖括号?或者有更简单的方法吗?
【问题讨论】:
我有一个应用程序,用户可以在其中将 HTML 和 ASP 代码的 sn-ps 存储在数据库中。问题是,当我动态填充 textarea 控件时,HTML sn-p 中可能包含的所有各种字符都会导致页面无法正确呈现。
有人可以指出在输出到浏览器之前剥离/替换各种字符的指南/操作方法吗?
我是否要去掉尖括号并用替代字符替换?我是否强制我的用户输入 而不是尖括号?或者有更简单的方法吗?
【问题讨论】:
一个好习惯是使用 Server.httpUtility 类中的 HTMLEncode 和 HTMLDecode。
简单地替换 或手动解析 html 可能会很麻烦,而且您可能无法“完全理解”。
通过始终在任何用户输入或写入屏幕的文本上调用 HTMLEncode 和 HTMLDecode,您可以大大降低跨站点脚本和其他常见 Web 漏洞(如 SQL 注入)的风险。它绝不应该被用作唯一安全/卫生机制,但它易于实施且有效。
【讨论】:
使用HttpUtility,您可以在将 HTML 输出到屏幕之前轻松对其进行编码。
【讨论】: