gpt4 book ai didi

ajax - 如果不使用 cookie,CSRF 是否构成威胁?

转载 作者:行者123 更新时间:2023-12-03 16:11:41 29 4
gpt4 key购买 nike

我的 Flask 应用程序是 AJAX-heavy,但不使用任何 cookie。 CSRF 仍然是威胁还是现在部署该应用程序是否安全?

我已经看过这个SO question但我的情况略有不同,因为我不必担心用户的凭据。

我尝试从 Chrome DevTools(使用 $.ajax())调用 AJAX 到我在 上运行的服务器localhost(Flask 开发服务器),我收到一条错误消息

XMLHttpRequest cannot load http://localhost:5000/_ajax. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'chrome://newtab' is therefore not allowed access.

这是否意味着我是安全的,或者黑客是否有可能绕过这一点并仍然对我的服务器进行 AJAX 调用?

最佳答案

CSRF 不仅仅是针对 CORS AJAX 的保护。我可以在我的网站上制作一个表格,并将操作设置为 http://yoursite.com/account/delete .如果用户提交我的表单,而您的网站上没有 CSRF,则该操作将成功。或者,如果您对 GET 请求进行了更改(无论如何都不应该这样做),我可以将其添加到我的网站:

<img src="http://yoursite.com/account/delete" />

并且该操作将在我的页面加载时发生。

查看 Flask-WTF 或此代码段:http://flask.pocoo.org/snippets/3/

编辑

来自您的评论:

将该页面的操作更改为 POST,并通过表单而不是链接访问它。如果您的链接是:

<a href="{{ url_for('my_page') }}">Click Here</>

您的表单可以是(使用您需要的 Flask-WTF):

<form action="{{ url_for('my_page') }}" method="POST">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}" />
<input type="submit" value="Click Here" />
</form>

关于ajax - 如果不使用 cookie,CSRF 是否构成威胁?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33069469/

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