问题描述:
写了个静态页面,可以正常访问,然后在静态页面加了form表单,输入用户名,密码,在views中获取并打印,点击提交时就报错403,特此再次补充下,之前写过一篇相同的问题。
后台报错:
Forbidden (CSRF token missing or incorrect.): /index/
原因分析:
django的默认配置中设置了跨站请求的限制,并将其禁止的状态,form表单在提交时,除了常用的字段之外,额外添加一个token ,这个token是服务器端生成的,是一个随机的数字。服务器端就会检查从浏览器发过来的数据中有没有token,并且这个token的值是不是和服务器端保存的相等,如果相等,就继续执行操作,如果不相等,那这次POST请求肯定是伪造的。
解决方案:
方案一:将settints中对于跨站请求的限制注掉,风险在于那些通过基于受信任的输入form和对特定行为无需授权的已认证的用户来执行某些行为的web应用。已经通过被保存在用户浏览器中的cookie进行认证的用户将在完全无知的情况下发送HTTP请求到那个信任他的站点,进而进行用户不愿做的行为。