在Django中如何通过POST请求添加csrftoken参数示例?
- 内容介绍
- 文章标签
- 相关推荐
本文共计486个文字,预计阅读时间需要2分钟。
在Django中,使用POST方法时,需要先生成随机码以防止CSRF(跨站请求伪造)攻击。具体步骤如下:
1. 生成随机码:使用Django内置的`get_random_string`函数生成一个随机字符串。
2.将随机码添加到表单中:在表单的隐藏字段中添加生成的随机码。
3.在模板中引入JavaScript文件:使用``将JavaScript文件引入到HTML模板中。
注意:这是一个JavaScript文件,需要将其内容正确地嵌入到HTML模板中。
从百度查到在django中,使用post方法时,需要先生成随机码,以防止CSRF(Cross-site request forgery)跨站请求伪造,并稍加修改:
注:这是一个js文件,需要引入到html模板中:<script src="/static/javascript/post_need_csrftoken.js"></script>
这样做比使用{% csrf_token %}方便
$(function () { $.ajaxSetup({ headers: { "X-CSRFToken": getCookie("csrftoken") } }); }); // 为防止CSRF(Cross-site request forgery)跨站请求伪造,发post请求时需要在cookie中创建随机码 function getCookie(name) { var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); /* 上面这句话相当于: var arr; var reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); */ if(arr=document.cookie.match(reg)) return decodeURI(arr[2]); //ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它, // 因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。 else return null; }
补充知识:Django解决前端/客户端POST失败提示csrf_tokenxxx的问题
解决:把settings.py里把MIDDLEWARE中的
django.middleware.csrf.CsrfViewMiddleware
删除掉就好了
如果你不想删除,并且你是web端的话,在form表单里加一句 {%csrf_token%} 就好了
<form> {%csrf_token%} <!-- 其它代码 --> </form>
这个CRSF主要也是起一种保护验证的作用,看个人需要来保留吧
如果是安卓或者其它端,建议之间采取前者把那行代码删掉就行了
以上这篇在django中使用post方法时,需要增加csrftoken的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。
本文共计486个文字,预计阅读时间需要2分钟。
在Django中,使用POST方法时,需要先生成随机码以防止CSRF(跨站请求伪造)攻击。具体步骤如下:
1. 生成随机码:使用Django内置的`get_random_string`函数生成一个随机字符串。
2.将随机码添加到表单中:在表单的隐藏字段中添加生成的随机码。
3.在模板中引入JavaScript文件:使用``将JavaScript文件引入到HTML模板中。
注意:这是一个JavaScript文件,需要将其内容正确地嵌入到HTML模板中。
从百度查到在django中,使用post方法时,需要先生成随机码,以防止CSRF(Cross-site request forgery)跨站请求伪造,并稍加修改:
注:这是一个js文件,需要引入到html模板中:<script src="/static/javascript/post_need_csrftoken.js"></script>
这样做比使用{% csrf_token %}方便
$(function () { $.ajaxSetup({ headers: { "X-CSRFToken": getCookie("csrftoken") } }); }); // 为防止CSRF(Cross-site request forgery)跨站请求伪造,发post请求时需要在cookie中创建随机码 function getCookie(name) { var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); /* 上面这句话相当于: var arr; var reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); */ if(arr=document.cookie.match(reg)) return decodeURI(arr[2]); //ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它, // 因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。 else return null; }
补充知识:Django解决前端/客户端POST失败提示csrf_tokenxxx的问题
解决:把settings.py里把MIDDLEWARE中的
django.middleware.csrf.CsrfViewMiddleware
删除掉就好了
如果你不想删除,并且你是web端的话,在form表单里加一句 {%csrf_token%} 就好了
<form> {%csrf_token%} <!-- 其它代码 --> </form>
这个CRSF主要也是起一种保护验证的作用,看个人需要来保留吧
如果是安卓或者其它端,建议之间采取前者把那行代码删掉就行了
以上这篇在django中使用post方法时,需要增加csrftoken的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。

