Symfony2、自定义 ajax 请求和 CSRF
Symfony2, custom ajax requests and CSRF
我正在做一个使用大量 Ajax 请求和自定义表单的网站(听说:自定义 jQuery-伪造 POST 带有字段的请求,或简单的 GET 请求) .
我知道 Ajax 和 Symfony 形式不是不兼容的(因为服务器看不出任何区别),但这不是问题所在。
我非常担心 CSRF 攻击,因为我的 POST 请求没有使用 Symfony 的官方方式来构建和检查表单,所以我没有自动 CSRF 保护。
我有两个问题:
我可以认为我的 POST 请求是安全的吗?大多数 CSRF 攻击是通过指向敏感端点的 img
标签完成的。无法通过图像伪造 POST 请求。这样做的唯一方法是 JavaScript 注入吗?如果我使用 Twig(安全的用户内容包括,感谢 HTML 转义),我可能不会在我的页面中间有用户注入的 JS。那么,我脱离危险了吗?
无论如何,我也几乎没有 GET 合理的端点。我必须保护他们。保护相关操作的最简单方法是什么?使用 form.csrf_provider
服务生成的令牌附加链接(GET 参数),然后在每个相关操作的入口处进行验证?
您需要搜索 CSRF 并阅读更多相关信息。
这种攻击不仅可以用在<img>
标签中(其实我之前没想到它可以用在<img>
中)。
攻击者可以创建一个表单,向您的服务器发送 post 请求,而用户不会知道(如果他看不到页面的来源)。
我正在做一个使用大量 Ajax 请求和自定义表单的网站(听说:自定义 jQuery-伪造 POST 带有字段的请求,或简单的 GET 请求) . 我知道 Ajax 和 Symfony 形式不是不兼容的(因为服务器看不出任何区别),但这不是问题所在。
我非常担心 CSRF 攻击,因为我的 POST 请求没有使用 Symfony 的官方方式来构建和检查表单,所以我没有自动 CSRF 保护。
我有两个问题:
我可以认为我的 POST 请求是安全的吗?大多数 CSRF 攻击是通过指向敏感端点的
img
标签完成的。无法通过图像伪造 POST 请求。这样做的唯一方法是 JavaScript 注入吗?如果我使用 Twig(安全的用户内容包括,感谢 HTML 转义),我可能不会在我的页面中间有用户注入的 JS。那么,我脱离危险了吗?无论如何,我也几乎没有 GET 合理的端点。我必须保护他们。保护相关操作的最简单方法是什么?使用
form.csrf_provider
服务生成的令牌附加链接(GET 参数),然后在每个相关操作的入口处进行验证?
您需要搜索 CSRF 并阅读更多相关信息。
这种攻击不仅可以用在<img>
标签中(其实我之前没想到它可以用在<img>
中)。
攻击者可以创建一个表单,向您的服务器发送 post 请求,而用户不会知道(如果他看不到页面的来源)。