防御xss攻击需要重点掌握以下原则:
在将不可信数据插入到HTML标签之间时,对这些数据进行HTML Entity编码。
在将不可信数据插入到HTML属性里时,对这些数据进行HTML属性编码。
在将不可信数据插入到SCRIPT里时,对这些数据进行SCRIPT编码。
在将不可信数据插入到Style属性里时,对这些数据进行CSS编码。
在将不可信数据插入到HTML URL里时,对这些数据进行URL编码。
使用富文本时,使用XSS规则引擎进行编码过滤
XSS攻击,即跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,XSS是一种经常出现在web应用中的计算机安全。
以上列出的一些实体比较容易记忆,但有一些不容易记住的您可以查看 whatwg 或使用 解码工具 。
HTML 实体是一段以连字符号( &)开头、以分号( )结尾的字符串。用以显示不可见字符及保留字符(如 HTML 标签)
在前端,一般为了避免 XSS 攻击,会将 <> 编码为 < 与 >,这些就是 HTML 实体编码。
在 HTML 转义时,仅仅只需要对六个字符进行编码: &、 <、 >、 " 、 ' 和 `。我们可以使用 he 库进行编码及转义。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)