在维护HTML时避免javascript注入?
当注入在维护HTML时避免javascript注入?,javascript,jquery,code-injection,Javascript,Jquery,Code Injection,当注入alert('test)时,屏幕上会出现一个显示test的警报框。我对html进行了编码,但随后它显示为纯文本 我从数据库中获取dataHtml的值。由于某些原因,我必须使用javascript/jquery在客户端完成这一切 如何在维护html时忽略这些标记/注入?将设置了type属性的script元素附加到text/javascript以外的内容,例如: $("#id").append(dataHtml); 警报(“测试”); 此脚本标记不会被解析或作为javascript运行。
alert('test)
时,屏幕上会出现一个显示test的警报框。我对html进行了编码,但随后它显示为纯文本
我从数据库中获取dataHtml的值。由于某些原因,我必须使用javascript/jquery在客户端完成这一切
如何在维护html时忽略这些标记/注入?将设置了type属性的script元素附加到text/javascript以外的内容,例如:
$("#id").append(dataHtml);
警报(“测试”);
此脚本标记不会被解析或作为javascript运行。您可以使用简单的正则表达式删除所有脚本标记:
<script type="text/template">alert('test');</script>
dataHtml=dataHtml.replace(/[\s\s]*.[\s]*/g,”);
一些解释:
:除换行符以外的所有字符(*次)*
:换行符[\s\s]*
若要测试所有内容是否与预期相符,您可以使用联机工具和dataHtml值示例(例如)。我是否正确理解您要排除所有脚本标记?是的,我要。任何类似的恶意行为。
dataHtml = dataHtml.replace(/<script.*>[\s\S]*.*[\s\S]*<\/script>/g,"");