gpt4 book ai didi

php - Symfony2 易受 XSS 攻击

转载 作者:可可西里 更新时间:2023-10-31 23:30:31 25 4
gpt4 key购买 nike

我正在使用 Symfony2 witch Sencha Ext JS 作为前端。

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

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

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

  • 首先是在lifecycle event listeners上添加strip_tag函数,监听preFlush数据。

  • 其次是在选定的易受攻击字段的实体级别 添加 strip_tags。

这两种选择在我看来都不够,因为代码量很大。

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

多谢指教!

最佳答案

如果您不使用模板引擎(我强烈推荐它以防止 XSS 攻击),您需要使用以下方法转义所有用户数据:

htmlspecialchars($string, ENT_QUOTES);

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

<script nonce="myRandomString"></script>

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

header('Content-Security-Policy', 'script-src 'nonce-myRandomString' 'unsafe-inline' 'unsafe-eval' 'strict-dynamic' https: http:; object-src 'none');

这将防止在现代浏览器(即较新版本的 Chrome;但 CSP 3 将很快在其他浏览器中实现,希望如此)中运行外部脚本。 所以要小心,这不是 100%,只是一个安全网。

请注意,每个请求的 nonce 字符串必须不同。您可以通过 Symfony 监听器实现此目的。我写的很详细tutorial on the Symfony implementation of CSP .

关于php - Symfony2 易受 XSS 攻击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28526309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com