什么必须在HTML内容中转义单引号,双引号和斜杠?

时间:2016-03-29 04:55:39

标签: javascript html xss owasp

上下文

  • 将不安全的字符串插入HTML标记的内容中
    • 此示例包括将不安全的字符串插入HTML属性
    • 此示例包括在脚本标记内插入不安全字符串的情况
  • 来自其他地方OWASP的建议

背景

  • 我理解为什么在放入HTML标记的内容之前需要转义小于号(<),大于号(>)和&符号(&)(<和> ;转义make标签和&符号大致是HTML转义字符)
  • 我可以看到为什么斜线(/)会出现问题,如果小于号和大于号的符号没有被转义,但它们是
  • 我也理解双引号(")如果混合到HTML元素的属性或脚本标记中可能会成为一个问题,但同样,再次逃避小于和大于拯救我们那个案子
  • 单引号是双引号的镜像(据我所知)

问题

  • 如果小于,大于和&符号被转义,是否真的有必要转义单引号('),双引号(")和斜杠(/) ?为什么呢?

  • HTML转义是否应该不那么通用?是否应该使用不同的转义策略插入HTML标记的内容而不是插入属性?还有其他需要考虑的案例吗?

反驳我认为将会发布的答案

  • "安全比抱歉更好"
    • 那么为什么不推荐使用感叹号和连字符,因为它们被用于HTML注释?
    • 我们是否应该转义所有字母字符,因为它们可用于标记和属性名称?
    • 要把这个想法发挥到极致,我们应该逃避所有角色吗?

0 个答案:

没有答案