zoukankan      html  css  js  c++  java
  • 【系统安全性】二、Web攻击与防范

    二、Web攻击与防范

    1、XSS攻击

    跨站脚本攻击(Cross Site Scripting),因为简写CSS,与层叠样式表(Cascading Style Sheets)有歧义,所以取名XSS

    原理:在网页中嵌入恶意脚本程序,在客户端浏览器执行(如用户输入数据转换成代码执行)

    防范:输入数据HTML转义处理(主流框架默认支持)

    2、注入攻击

    原理:SQL伪装成HTTP请求参数

    例如一个登录操作,输入帐号密码

    假设后台的Sql是这样拼装的:Select * from user where username = '输入的帐号' and password='输入的密码'

    那么,我从客户端输入帐号:admin 输入密码:' or '1'='1

    传到后台后,拼装结果变成:Select * from user where username = 'admin' and password='' or '1'='1'

    结果是能查出数据,后台就以为帐号和密码正确

    防范:使用预编译语句(PreparedStatement)、使用ORM框架、避免密码明文存放、异常处理(避免异常直接给到前台)

    3、CSRF攻击

    跨站请求伪造

    原理:用户在浏览器登录了站点A,生成了A的cookie;然后访问恶意站点B,B要求访问A,就可以带着A的cookie去访问A站点了,从而使B站点没有认证和授权的情况下获取到了A站点的数据

    防范:cookie设置成HttpOnly;添加自定义token;使用Referer(知道请求的源头)

    主要不是由开发人员防范

    4、文件上传漏洞

    原理:上传可执行文件和脚本;不对上传文件进行校验;获取服务器权限

    防范:根据文件MagicNumber判断文件类型(JPEG:FFD8FF);文件长度限制;使用第三方框架

    5、DDos攻击

    分布式拒绝服务攻击(Distributed Denial of Service)

    Dos:使用合理的客户端请求占用过多的服务器资源,从而使合法用户无法使用服务

    DDos:数量庞大的计算器联合攻击,这些计算器是分布式的

    方式:SYN Flood 伪造SYN报文;DNS query Flood;HTTP Flood

    6、其它攻击

    DNS域名挟持、CDN回源共计、服务器权限提升、缓冲区溢出

  • 相关阅读:
    Linux下Java环境安装
    Go语言学习之10 Web开发与Mysql数据库
    Go语言学习之9 网络协议TCP、Redis与聊天室
    Redis入门指南之三(入门)
    Redis入门指南之一(简介)
    Go语言学习之8 goroutine详解、定时器与单元测试
    Redis入门指南之二(安装及配置)
    Go语言学习之7 接口实例、终端文件读写、异常处理
    Go语言学习之6 反射详解
    Go语言学习之5 进阶-排序、链表、二叉树、接口
  • 原文地址:https://www.cnblogs.com/LiveYourLife/p/8674413.html
Copyright © 2011-2022 走看看