zoukankan      html  css  js  c++  java
  • CSRF

    CSRF介绍

    • 英文:Cross Site Request Forgy
    • 中文:跨站请求伪造
    • 攻击者在其他的网站对目标网站产生了影响

    CSRF攻击危害

    • 利用用户登录态
    • 用户不知情
    • 完成业务请求
    • 盗取用户资金(转账,消费)

    钓鱼网站

    就类似于你搭建了一个跟银行一模一样的web页面
    用户在你的网站转账的时候输入用户名 密码 对方账户
    银行里面的钱确实少了 但是发现收款人变了

    最简单的原理

    你写的form表单中 用户的用户名 密码都会真实的提交给银行后台
    但是收款人的账户却不是用户填的 你暴露给用户的是一个没有name属性的input框
    你自己提前写好了一个隐藏的带有name和value的input框

    解决钓鱼网站的策略

    只要是用户想要提交post请求的页面 我在返回给用户的时候就提前设置好一个随机字符串
    当用户提交post请求的时候 我会自动先取查找是否有该随机字符串
    如果有 正常提交
    如果没有 直接报403

    csrf_token

    csrf_token 是为了防止csrf(跨站请求伪造),防止csrf的手段就有给form加个token。

    更简单的说:就是防止黑客盗用你存在网站(cookie)上的账户密码和信息

    csrf_token使用

    form表单
        你在写的时候只需要加上一个
        {% csrf_token %}
    
            
    ajax
    	第一种  自己再页面上先通过{% csrf_token %}获取到随机字符串  然后利用标签查找 
    data:{'username':'jason','csrfmiddlewaretoken':$('[name="csrfmiddlewaretoken"]').val()},
        第二种
    data:{'username':'jason','csrfmiddlewaretoken':'{{ csrf_token }}'},
        第三种
            拷贝js文件
    

    csrf_exempt

    csrf_exempt  只有两种装饰的方式
    from django.views.decorators.csrf import csrf_exempt, csrf_protect
    from django.utils.decorators import method_decorator
    # 第一种
    # @method_decorator(csrf_exempt,name='dispatch')
    class MyCsrf(View):
    	# 第二种
    	@method_decorator(csrf_exempt)
    	def dispatch(self, request, *args, **kwargs):
    		return super().dispatch(request,*args,**kwargs)
    	def get(self,request):
    		return HttpResponse('hahaha')
    		
    除了csrf_exempt之外 所有的其他装饰器 在CBV上面都有三种方式
    @method_decorator(csrf_protect,name='post')
    class MyCsrf(View):
    	@method_decorator(csrf_protect)
    	def dispatch(self, request, *args, **kwargs):
    		return super().dispatch(request,*args,**kwargs)
    	def get(self,request):
    		return HttpResponse('hahaha')
    
    	@method_decorator(csrf_protect)
    	def post(self,request):
    		return HttpResponse('post')
    
    
  • 相关阅读:
    C#与独孤九剑
    C#系列视频教程字符和字符串操作
    【设计模式】迪米特法则
    【设计模式】考题 模板方法模式
    C#字符和字符串
    【热门技术】解决Win7 下面很多软件安装不兼容的问题
    C#使电脑发出嗡鸣声
    C#视频教程下载(第一章)
    【设计模式】牛市股票还会亏钱 外观模式
    【设计模式】好菜每回味不同 建造者模式
  • 原文地址:https://www.cnblogs.com/aden668/p/11766967.html
Copyright © 2011-2022 走看看