zoukankan      html  css  js  c++  java
  • python---Django常见的web攻击和防范

    1、sql注入攻击及防范

    2、xss攻击和防范

    3、csrf攻击和防范

    一、sql注入攻击和防范

    1、sql注入的危害:

    非法读取、篡改、删除数据库中的数据

    盗用用户的各种敏感信息,获取利益

    通过修改数据库来修改网页上的内容

    注入木马

    2、攻击的方法:

    项目中,执行数据库中操作不是用orm来编写,用原生的sql语句,例如登录页面:

     1 from django.shortcuts import render
     2 class LoginUnsafeView(View):
     3     def get(self,request):
     4         return render(request,'login.html')
     5     def post(self,request):
     6         user_name=request.POST.get('username','')
     7         pass_word=request.POST.get('password','')
     8         import MySQLdb
     9         db=MySQLdb.connect("localhost","root","","testdb",charset='utf8')
    10         cursor=db.cursor()
    11         cursor.execute("select * from userprofile where username={0} and password={1}".format(user_name,pass_word))
    12         data=cursor.fetchall()
    13         db.close()

    如果在登录页面用户名输上:'OR 1=1 # 相当于:‘select * from userprofile where user=\'\' or 1=1#’     and password=\'123\'

    1=1一定为真,所以用户会把所有的数据都拿到,然后进行数据库攻击。

    预防措施:前端进行表单校验,is_valid(),django的models中操作的数据库方法已经对sql注入攻击进行了处理。

    二、xss攻击和预防

    1、xss跨站脚本攻击(cross site scripting)的危害:

    盗用各类用户账号,如用户网银账号,各类管理员账号、盗用企业重要的具有商业价值的资料

    非法转账

    控制受害者机器向其他网站发起攻击、注入木马等

    2、实例:get请求数据

    获取用户本地的session_id和所有本地的缓存

    攻击流程:

    这样黑客就可以伪装成用户向服务器发起攻击,这就是跨站脚本攻击

    3、如何防护

    首先代码里对用户输入的地方和变量都进行仔细的检查长度和对“<”">"";" "等字符进行过滤;

    避免直接在cookie中泄露用户隐私,例如email,密码等等

    通过使用cookie和系统ip绑定来降低cookie泄露后的风险

    尽量采用post并非get提交表单

    三、crsf攻击

    csrf跨站请求伪造(cross-site request forgery)的危害:

    以用户名义发送邮件

    盗取用户的账户

    购买商品

    虚拟货币转账

    csrf攻击原理:

    用户向A服务器(银行)发送请求,返回时会带上请求的sessionid,之后在没有关闭或者说没有sessionid没有过期的情况下,又新打开一个窗口,访问黑客的网站,黑客给他返回一个图片,这个图片隐藏着一个向a服务器发送转账请求的url,然后用户一访问,钱就没了。

    post请求也会受到这种攻击,通过iframe,然后执行脚本

    csrf攻击的防范措施:在form表单中加{%crsf_token%}

  • 相关阅读:
    网页端打开手机上的app
    iOS 9学习系列:打通 iOS 9 的通用链接(Universal Links)
    自定义 URL Scheme 完全指南
    App开发流程之加密工具类
    iOS8系统H264视频硬件编解码说明
    人脸识别
    app上线具体流程
    第三方分享
    Android摸索-二、解决Android SDK Manager下载太慢问题
    Android摸索一环境搭建
  • 原文地址:https://www.cnblogs.com/shijia-listen/p/10630137.html
Copyright © 2011-2022 走看看