ajax、json、csrf是什么

Ajax

AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML)还有JSON数据。
AJAX还有一个最大的特点就是,当服务器响应时,不用刷新整个浏览器页面,而是可以局部刷新。这一特点给用户的感受是在不知不觉中完成请求和响应过程。
应用场景:
(1)、搜索引擎关键字
(2)、注册时信息校验
在这里插入图片描述

ajax使用

使用ajax 来验证用户名是否已经被注册过了。
在这里插入图片描述

<script>
    $(function () {
        {#alert("ahah");#}
        $("#name").blur(function () {
            {#alert("哈哈");#}
            $.ajax({
                "url": "/register_ajax/", // 提交的路径
                "type": "GET", // 提交方式
                "data": {"name": $("#name").val()}, // 携带的参数
                "success": function (data) { //回调函数,当请求成功后自动触发此方法
                    {#console.log(data) // data: 服务端返回的内容#}
                    {#alert(data["result"])#}
                    if (data.result == "true") {
                        {#alert("此用户已经存在...")#}
                        $("#error").text("此用户已经存在...")
                    } else {
                        $("#error").text("")
                    }
                }
            });
        })
    })
</script>
  • XML语言
    HTML用于显示数据而XML用于保存和传输数据;
    xml在保存结构化和层次化的数据比较有优势;
    例如 中国有北京和上海两个直辖市,每个市又有2个区,种具有结构的数据xml语言保存很有优势。
    在这里插入图片描述
    在这里插入图片描述
  • JSON语言

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。
JSON去掉多余 XML标签元素,只返回有效数据部分,是一种更优的方案
官网: http://www.json.org/

Json中数据格式分成两种:对象格式的数据和数组格式的数据

对象格式: {key:value,key:value,key:value }
键:必须是字符串常量 {name : “张三”}和 {“name”:”张三”}是等价的;
值:加不加引号,是有区别的,不加引号是变量,加引号常量字符串
键值对之间使用 ” , ” 分开,键值之间用 “:”

数组格式:[值1, 值2 ,值3 ] 例如[“zs”,”ls”,”ww”]

组合后复杂格式:
[{name:‘aaa’}, {name:‘bbb’}, {name:ccc}] 表示三个对象数组

CSRF

CSRF:CSRF跨站点请求伪造(Cross—Site Request Forgery)CSRF攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击页面,利用目标网站对用户的信任,以用户身份在攻击页面对目标网站发起伪造用户操作的请求,达到攻击目的。

CSRF攻击攻击原理及过程如下:

  1. 用户C打开浏览器,访问受信任网站A,输入用户名和密码请求登录网站A;
    2.在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录网站A成功,可以正常发送请求到网站A;
  2. 用户未退出网站A之前,在同一浏览器中,打开一个TAB页访问网站B;
  3. 网站B接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A;

CSRF防御:
现在业界对CSRF的防御,一致的做法是使用一个Token(Anti CSRF Token)。

  1. 用户访问某个表单页面。

  2. 服务端生成一个Token,放在用户的Session中,或者浏览器的Cookie中。

  3. 在页面表单附带上Token参数。

  4. 用户提交请求后, 服务端验证表单中的Token是否与用户Session(或Cookies)中的Token一致,一致为合法请求,不是则非法请求。

这个Token的值必须是随机的,不可预测的。由于Token的存在,攻击者无法再构造一个带有合法Token的请求实施CSRF攻击。另外使用Token时应注意Token的保密性,尽量把敏感操作由GET改为POST,以form或AJAX形式提交,避免Token泄露。

token字符串的前32位是salt, 后面是加密后的token, 通过salt能解密出唯一的secret。
django会验证表单中的token和cookie中token是否能解出同样的secret,secret一样则本次请求合法。
Django中配置csrf的setting文件
在这里插入图片描述
html中加csrf
在这里插入图片描述
结论:如果在django中把刚才的那句注释掉,那么html页面上不写csrf是可以的,否则会报错。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值