我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它已經不能分析 –