防止js攻击输入框
有的时候页面中会有一个输入框,用户输入内容后会显示在页面中,类似于网页聊天应用。如果用户输入了一段js脚本,比例:,页面会弹出一个对话框,或者输入的脚本中有改变页面js变量的代码则会时程序异常或者达到跳过某种验证的目的。那如何防止这种恶意的js脚本攻击呢?
- 、用正则表达式进行转换处理
使用正则表达式也是一种常用的处理方式,实现原理就是使用替换的方式来实现转码和解码,转码时把<>,空格符,&,’,""替换成html编码,解码就把html编码替换成对应的字符。
< 会转义为 < 和 > 或转义为 >
例如:当输入“< script>alert(‘test’);</ script>“这段字符会转义为:“< ;scrip t> ;alert(‘tes t’);< ;/script> ;”再显示时页面会将< ;解析为<,> ;解析为>,从而还原了用户的真实输入,最终显示在页面上 的还是< script>alert(‘test’);</scrip t>,即避免了js注入攻击又真实的显示了用户输入。 - ..用浏览器内部转换器实现html转码
首先动态创建一个容器标签元素,如DIV,然后将要转换的字符串设置为这个元素的innerText(ie支持)或者textContent(火狐,google支持),最后返回这个元素的innerHTML,即得到经过HTML编码转换的字符串了。