请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

有没有出现CSRF cookie not set 的?

django控制台出现
Forbidden (CSRF cookie not set.): /api/v1.0/auth/authorize [19/Feb/2019 21:05:57] “POST /api/v1.0/auth/authorize HTTP/1.1” 403 2868
有没有出现这个错误的?咋解决?Middleware里注释掉csrf?

小程序端出现
http://127.0.0.1:8000/api/v1.0/auth/authorize 403 (Forbidden)

appservice?t=1550581357397:1117 POST

正在回答

1回答

咚咚呛 2019-02-19 21:47:28

这个是因为Django框架的CSRF组件,需要把在配置里把组件注释掉,如下:

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]


1 回复 有任何疑惑可以回复我~
  • 把CSRF注释掉以后,会不会有安全问题???不懂,求指导。是不是可以理解成小程序使用https就能够保证了信息安全???
    回复 有任何疑惑可以回复我~ 2019-04-11 16:44:09
  • 同学对安全方面挺感兴趣,赞。要回答这个问题,首先要理解CSRF是什么,CSRF(跨站请求伪造),意思是伪造信任用户向后端发出信任请求,CSRF攻击的必要因素是网页的存在。在课程里,我为什么说可以直接把他注释掉,因为课程的前端是小程序,小程序没有网页页面,且小程序与微信服务器是安全连接的,所以不存在这个风险,可以直接注释掉。另外这个和HTTPS关系不大,CSRF主要在前端伪造向后端发出攻击,即如果受到CSRF攻击了,后端是认为请求是合法的,所以HTTPS无法防护这个问题。
    回复 有任何疑惑可以回复我~ 2019-04-11 20:29:59
  • 那我也需要有前端的情况下怎么办?我需要小程序和前端同时访问。那该怎么办呢?
    回复 有任何疑惑可以回复我~ 2019-04-11 21:01:22
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信