Django-website 程序案例系列-1 CSRF

django为用户实现防止跨站请求伪造的功能

需要配置settings.py:

   django.middleware.csrf.CsrfViewMiddleware

1. form表单提交

<form action="/logi/" method="POST">
    {% csrf_token %}    #需要在form表单中添加{% csrf_token %}
    <input type="text" name="user"/>
    <input type="text" name="pwd"/>
    <input type="checkbox" name="rmb" value="1" /> 10秒免登陆
    <input type="submit" value="提交"/>
</form>

  

2. ajax方式提交

js使用ajax来提交数据,在其中加入csrf
<script src="/static/jquery.min.js"></script>
<script src="/static/jquery.cookie.js"></script>
<script>
    $(function () {
        $(‘#btn‘).click(function () {
            $.ajax({
                url: ‘/logi/‘,
                type: "POST",
                data: {‘user‘: ‘root‘, ‘pwd‘: ‘123‘},
                headers: {‘X-CSRFtoken‘: $.cookie(‘csrftoken‘)},  #设置csrftoken到http响应头中,其中键是X-CSRFtoken是django固定的
                success:function(arg){

                }
            })
        })
    })
</script>

  

时间: 2024-10-02 14:02:48

Django-website 程序案例系列-1 CSRF的相关文章

Django-website 程序案例系列-16 modle.form(表单验证)

案例程序: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/fm/" method="POST"> #3个输入框分别是user/pwd/ema

Django-website 程序案例系列-18 多表跨表操作优化

详解Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化 在数据库有外键的时候,使用 select_related() 和 prefetch_related() 可以很好的减少数据库请求的次数,从而提高性能.本文通过一个简单的例子详解这两个函数的作用.虽然QuerySet的文档中已经详细说明了,但本文试图从QuerySet触发的SQL语句来分析工作方式,从而进一步了解Django具体的运作方式. 本来打算写成一篇单独的文章的,但

Django-website 程序案例系列-4 ORM数据库操作

数据库表的创建: 使用mysql时注意,在setting.py中的设置: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', #mysql的引擎 'NAME': '', #数据库名 'USER': '', #数据库用户名 'PASSWORD': '', #数据库密码 'HOST': '127.0.0.1', #数据库host 'PORT': '3306', #数据库端口 },} 还需在项目文件夹下的__init__.p

Django-website 程序案例系列-10 验证装饰器

FBV装饰器: def auth(func): #装饰器函数 def inner(request, *args, **kwargs): v = request.COOKIES.get('username') if not v: return redirect('/log/') return func(request, *args, **kwargs) return inner 使用方法: 在函数上加上@auth CBV装饰器: 第一种方式:利用django自带的工具 def auth(func)

Django-website 程序案例系列-17 forms表单验证的字段解释

1.Django内置字段如下: Field required=True, 是否允许为空 widget=None, HTML插件 label=None, 用于生成Label标签或显示内容 initial=None, 初始值 help_text='', 帮助信息(在标签旁边显示) error_messages=None, 错误信息 {'required': '不能为空', 'invalid': '格式错误'} show_hidden_initial=False, 是否在当前插件后面再加一个隐藏的且具

Django-website 程序案例系列-5 模态对话框实现提交数据

html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .hide{ #隐藏效果 display: none; } .shade{ #模态框遮蔽层效果 position: fixed; top: 0; right: 0; left: 0; b

Django学习系列之CSRF

Django CSRF 什么是CSRF CSRF, Cross Site Request Forgery, 跨站点伪造请求.举例来讲,某个恶意的网站上有一个指向你的网站的链接,如果 某个用户已经登录到你的网站上了,那么当这个用户点击这个恶意网站上的那个链接时,就会向你的网站发来一个请求, 你的网站会以为这个请求是用户自己发来的,其实呢,这个请求是那个恶意网站伪造的 Django提供的CSRF防护机制 django 第一次响应来自某个客户端的请求时,会在服务器端随机生成一个 token,把这个 t

都说Djnago框架重,那就让哥用15行代码写个django web程序!

很多初学django的小伙伴都会了解到,django是个大而全的网络框架,本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能.要学这么多内容,要学到猴年马月啊!? 不过世界真是奇妙,现在咱们就在猴年马月里!2016年是猴年,按农历计算,6月5日至7月3日是庚午月,正好是"猴年"里的"马月".那么问题来了:你想不想在猴年马月里学会django呢? 下面我们尝试一下,用15行代码结合django写个web程序,来一次django的清爽体验. djang

Windows程序调试系列: 使用VC++生成调试信息 转

Windows程序调试系列: 使用VC++生成调试信息 ZhangTao,[email protected], 译自 “Generating debug information with Visual C++”,Oleg Starodumov 出处: http://www.cnblogs.com/itrust/archive/2006/08/17/479603.aspx 引子 当我们使用调试器来调试程序时,我们希望能够单步调试到源代码中,在代码中设置断点,观察变量的值(包括用户自定义的复杂类型的