在web开发中,经常需要原封不动的保存用户输入,并安全的回显到页面中。对于一般的字符串,比如abc、123之类的输入,直接回显到web页面中并没有什么不妥。但对于<javascript>alert(0);</javascript>这种输入而言,就必须进行必要的转码再输出到web页面中,否则就会出现著名的XSS攻击了。
为了安全的回显,我们需要把 ‘ " < & > 这5个符号进行html编码。只要解决了这5个字符的编码,就可以避免XSS攻击了。
1: 对用户直接输入的内容必须经过html编码之后再进行web回显。
2: 对保存到数据库中的内容应为用户输入的原始数据
3: 对数据库中读取的原始数据需要进行html编码之后再进行web回显。
4: 尽量不要在数据库中保留进过编码之后的数据(特殊情况例外,比如在苛刻的性能要求下)