zoukankan      html  css  js  c++  java
  • 网站 安全 ---- 常见的 web 攻击

    网站 安全 ---- 常见的 web 攻击



    1 sql 注入(常用的攻击性)(django的orm是做过sql防护处理的)


    危害:

        非法读取,篡改,删除数据库中的数据
        盗取用户的各类敏感信息。获取利益
        通过修改数据库来修改网页的内容
        注入木马等
    

    原理 :在输入中 加入 sql 语句 一定成立的

            def post(self,request):
                user_name = request.POST.get('username', '')  # 输入 ' OR 1=1 #ahdsahdsadsasad(#表示注释)
                user_pwd = request.POST.get('password', '')
                import pymysql
                conn = pymysql.connect(host='127.0.0.1',port=3306,user='root',password='',db='mxonline',charset='utf8')
                cursor = conn.cursor()
                sql_select = "SELECT * FROM users_userprofile WHERE email ='{0}' and password = '{1}'".format(user_name,user_pwd)
                result = cursor.execute(sql_select)
                for row in cursor.fetchall():
                    if row:
                        return HttpResponse('登陆成功!')
    

    解决方法:

        合法输入 ,不能输入单引号 ' # ;
        正则匹配
        django 的 orm
        excute执行SQL语句的时候,必须使用参数化的方式,否则必然产生SQL注入漏洞。
            cursor.execute("SELECT * FROM users_userprofile WHERE email =%s and username = %s",(user_name,user_pwd))
    

    2 xss 攻击 xss跨站脚本攻击 cross site script


    危害:

        盗取账号,网银,商业价值的资料
        非法转账
        控制受害者 向其他网站发起攻击
    

    原理:

        受害者 -->> 服务器 url 请求信息
    
        服务器 没有对请求信息做验证
    
            http:// www.bank.com/product/list?name=‘alex’</script>  ===>>  正常情况 会回显 name的内容给浏览器
    
            http:// www.bank.com/product/list?name=<script>x=document.cookie;alert(x)</script> ===>> 漏洞, 返回 script脚本,给浏览器
    
            可能 把 cookie泄露
    

    xss 完整流程:

        用户 --- 服务器有 xss 漏洞
    
        黑客 向客户发送 伪装的请求连接(可能包括获取用户sesson cookie到黑客 服务器上的 js代码 )
    
        用户点击 伪装请求
    
        服务器没有判断(存在漏洞) --执行脚本后 把数据 传给 黑客
    
        黑客 通过session伪装用户 获取用户所有信息
    

    xss 攻击 防护:

        首先  对代码中 用户输入的 特殊符号做 过滤
            '<' '>' ';' ''
    
        尽量避免 暴露 用户隐私在 cookie中
        通过cookie 和 ip绑定,来降低 cookie泄露的危害
    
        尽量 使用 post的表单提交
    

    3 csrf 攻击 跨站请求伪造 cross site request forgery

    危害:

        以用户名义发送邮件
        盗取用户的账号
        购买商品
        虚拟货币转账
    

    原理:

    基本都是post 请求 会存在 账号密码提交时候的隐患
    
       ! 用户访问 安全的服务器 A 货币相关
        (返回 session ID)
        每次请求都会带有session
    
       !! 用户没有登出 A的情况下 访问 不安全的 B 服务器  --- cookie没有失效
    
       !!! B返回 内容 包括 一个危险的  (伪装成图片或者其他)要求 用户访问A的 转账url
    
    
    <img src=http://www.mybank.com/Transfer/toBankID=11&money=10000>
    

    csrf 攻击防护 增加 csrf 验证 保证每次的post提交都有服务端生成的 csrf

        {% csrftoken %}
  • 相关阅读:
    一文搞定操作系统!超详细图文详解!请带着耐心点进来!
    一文搞定操作系统的进程和线程!
    别再敲代码了,用对工具,做可视化大屏原来这么简单!
    一个网站,让你拥有各类资源!!
    DCN v2
    SSD
    Pytorch 模型的加载与保存
    Pytorch分布式训练
    Pytorch中的BatchNorm
    OHEM(2)
  • 原文地址:https://www.cnblogs.com/big-handsome-guy/p/8507281.html
Copyright © 2011-2022 走看看