我test.jsp的逃生Java端字符串中的JavaScript
<script>
var name="<%=testName %>";
</script>
"testName"
varible申报全球和它的价值"javascript:alert("hi");"
而assing其中包含双引号它给未终止的字符串错误值。 我尝试过逃跑。 java端编码/解码但仍有分配问题。 什么会在JavaScript或jQuery中的方式?
我test.jsp的逃生Java端字符串中的JavaScript
<script>
var name="<%=testName %>";
</script>
"testName"
varible申报全球和它的价值"javascript:alert("hi");"
而assing其中包含双引号它给未终止的字符串错误值。 我尝试过逃跑。 java端编码/解码但仍有分配问题。 什么会在JavaScript或jQuery中的方式?
尽量简单
<script>
var name=<%=new Gson().toJson(testName)%>;
</script>
我把它传递给前端之前删除从后端的字符串的任何报价。
但是,如果你需要保持引号括起来的,你应该逃避他们在后端。
因此,如果前端是用单引号括住的字符串,你必须逃脱后端单引号。
String myString = "my string\\'s test";
在前端,它最终会被
var text = 'my string\' test';
您可以逃脱引号/字符由prepending \
它:
<script>
var name="<%=testName.replace('"','\"') %>";
</script>
或在JS
alert(variabl.replace(/"/g, '\\"'));
只是用它内部的单引号' “的javascript:警报( '你好');”' –
@DavidFregoli:它的Java varibale。它可能包含任何值。你将如何在JavaScript的客户端手段做到这一点。 –
,然后逃逸它在Java中,由它得到的JavaScript它已经不能分析 –