本文目录一览:
关于js中的双引号转义问题
编译器怎么知道?这是就是它的标准语法啊,它要不知道就不是编译器了,这个\跟JS里的正则表达式中的“\”起到的作用一样。
第一个 " 其它JS编译器是不执行,因为这个句字是用在HTML中,所有这个是由是HTML编译器来执行了。第二个才是JS来执行了。
在input的标签里怎么绕过xss双引号的编码过滤
哥们,要是让你绕过去了,黑客也就绕过去了。不要想着从前台骗过过滤器,如果系统设置非常严格,所有从前台设置的输入信息都会被xss过滤器过滤,一般是把特殊字符删除或者转译(比如大于号小于号双引号斜杠等),避免用户通过非法手段存储注入代码,但是一般的web系统,都不会在显示的时候重新转码,所以,如果你可以直接访问数据库,则可以讲特殊字符的代码直接写到数据库里,页面就会直接显示了。
js单引号和双引号的转义问题
html的双引号是正常的,每一个属性,例如:value="",一般都有双引号包着。但是用js添加页面节点的时候,需要转义,比如:
var html = "div onclick=\" openUrl( ' s:url value='%{resUrl}'/ ' ) \"/div";
document.getElementById("main").innerHTML = html;
最外面的那个双引号是表示一个字符串变量的意思,而被包在里面的双引号就不起作用,只有在页面显示的时候才会起作用,也就是说js不会认为第一个双引号和第二个双引号是一对,会认为/div";这个双引号才是结尾,因为中间的被"\"转义了。
openUrl函数中的第一对单引号是表示字符串的意思,你省去也不会报错,中间那一对则是标签的属性需要。
最后的问题说明对struts的标签不熟,可以看下struts的property和ognl表达式,最多半个小时可学会。