如何在JSP/Servlet Web应用程序中防止XSS攻击?
我完全坚持这个,我试图逃避JSP中的单引号.我有一些数据,我直接输出到JS字符串,单引号似乎导致问题.
这是我的代码:
<dsp:droplet name="/atg/dynamo/droplet/ForEach">
<dsp:param value="${CommerceItems}" name="array" />
<dsp:param name="elementName" value="CommerceItem" />
<dsp:oparam name="outputStart">
var itemNameList ='
</dsp:oparam>
<dsp:oparam name="output">
<dsp:getvalueof id="Desc" param="CommerceItem.auxiliaryData.productRef.displayName">
${fn:replace(Desc, "'", "\\/'")}
</dsp:getvalueof>
</dsp:oparam>
<dsp:oparam name="outputEnd">';</dsp:oparam>
</dsp:droplet>
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出:
var itemNameList ='
Weyland Estate Santa Barbara Pinot Noir
Raymond \/'Prodigal\/' North Coast Cabernet Sauvignon
Chateau Haute Tuque';
Run Code Online (Sandbox Code Playgroud)
但这是错误的,我只需要/'Prodigal'/或根本不需要单引号!
编辑:或者我实际上需要用\反斜杠来逃避引号?
我希望12"3在输入标签值中显示
我写这个:
<INPUT TYPE="text" NAME="" value="12\"3">
Run Code Online (Sandbox Code Playgroud)
但这不对
为什么?
PS:我必须转移"到"或"改为'?我不喜欢它