首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSS攻击的Symfony2漏洞

XSS攻击的Symfony2漏洞
EN

Stack Overflow用户
提问于 2015-02-15 13:01:35
回答 1查看 2.9K关注 0票数 4

我使用Symfony2女巫Sencha作为前端。

我发现我的表单容易受到XSS攻击。我知道,Symfony2有保护我们的数据免受攻击的机制,但是这种机制主要是使用我不使用的模板。

我正在从前端字段收集大量数据,这些数据被传递到后端。我希望用尽可能少的努力解决这个问题。

我的目标是在数据进入数据库之前保护我的应用程序。我脑子里有两个选择。

  • 首先是在strip_tag生命周期事件侦听器(侦听数据preFlush )上添加函数。
  • 第二,在选定的易受攻击字段上添加strip_tags在实体级。

在我看来,由于代码的数量,这两种选择都是不够的。

在Sencha前端添加一些代码可能是个好主意吗?我不知道该怎么办。

谢谢你的建议!

EN

回答 1

Stack Overflow用户

发布于 2017-02-05 15:14:21

如果您不使用模板引擎(为了防止XSS攻击,我强烈建议使用模板引擎),则需要使用以下方法来转义所有用户数据

代码语言:javascript
复制
htmlspecialchars($string, ENT_QUOTES);

您可以通过实现及其nonce参数来添加另一个安全层--它是一个随机生成的长字符串,需要添加到每个脚本标记中,如下所示:

代码语言:javascript
复制
<script nonce="myRandomString"></script>

然后,只需在PHP中设置一个新的CSP头:

代码语言:javascript
复制
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实现教程

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28526309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档