我使用Symfony2女巫Sencha作为前端。
我发现我的表单容易受到XSS攻击。我知道,Symfony2有保护我们的数据免受攻击的机制,但是这种机制主要是使用我不使用的模板。
我正在从前端字段收集大量数据,这些数据被传递到后端。我希望用尽可能少的努力解决这个问题。
我的目标是在数据进入数据库之前保护我的应用程序。我脑子里有两个选择。
在我看来,由于代码的数量,这两种选择都是不够的。
在Sencha前端添加一些代码可能是个好主意吗?我不知道该怎么办。
谢谢你的建议!
发布于 2017-02-05 15:14:21
如果您不使用模板引擎(为了防止XSS攻击,我强烈建议使用模板引擎),则需要使用以下方法来转义所有用户数据:
htmlspecialchars($string, ENT_QUOTES);您可以通过实现及其nonce参数来添加另一个安全层--它是一个随机生成的长字符串,需要添加到每个脚本标记中,如下所示:
<script nonce="myRandomString"></script>然后,只需在PHP中设置一个新的CSP头:
header('Content-Security-Policy', 'script-src 'nonce-myRandomString' 'unsafe-inline' 'unsafe-eval' 'strict-dynamic' https: http:; object-src 'none');这将阻止在现代浏览器中运行外部脚本(即更新版本的Chrome;但CSP 3将很快在其他浏览器中实现,希望如此)。所以要小心,这不是100%,只是一个安全网。
请注意,每个请求的当前字符串必须是不同的。您可以通过Symfony侦听器来实现这一点。我写了一个详细的CSP的Symfony实现教程。
https://stackoverflow.com/questions/28526309
复制相似问题