用符合内容安全策略的代码替换多个内联按钮onclick事件处理程序

replace multiple inline button onclick event handlers with content security policy compliant code

本文关键字:按钮 onclick 事件处理 程序 代码 安全策略 替换      更新时间:2023-09-26

我是内容安全策略的新手。我最近在我的网络应用程序中启用了它:我有一个JSP,我有多个按钮,每个按钮都有不同的操作,我用JS的onClick事件处理不同的按钮操作,但CSP不允许像这样使用内联JS。

这是我的按钮:

<button type="submit"     
onclick="form.action='${pageContext.request.contextPath}/product/edit'"    
class="sbmt_bt"><fmt:message key="save" /></button>
<button type="submit"    
onclick="form.action='${pageContext.request.contextPath}/product/delete';   
return confirm('${deleteAlert}')" class="sbmt_bt"><fmt:message key="delete"    
/></button>
<button type="submit"  
onclick="form.action='${pageContext.request.contextPath}/product/add'"   
class="sbmt_bt"><fmt:message key="add" /></button>

什么是符合CSP的替代方案?

这对您来说应该是一个很好的起点。正如您在示例中看到的,您必须创建一个单独的JavaScript文件,将onclick监听器中的代码放在那里,并在html文件中引用JavaScript文件。