XSS:跨站脚本攻击

-典型实例为:

当用户在表达输入一段数据后,提交给服务端进行持久化。如果此用户输入的是一段脚本语言,而服务端

用户输入的数据没有经过转码、校验等就存入了数据库,在其他页面需要展示此数据时,就会执行此用户输入的语言。简单来说,JS的强大不用我来解释吧

-推荐防御措施:

对用户输入的信息进行转义,例如<>'等等特殊字符。当然,其实很多前端框架也支持这么做,快查一查你使用的框架支持么。

CRSF:跨站请求伪造

-典型实例为:

如果A银行存在CRSF漏洞,有用户在登陆完A银行后没有退出,A银行的cookie信息保存在浏览器。然后呢,用户不小心进入了恶意网站,

此网站识别出了用户客户端存在A银行的信息,那么恶意网站就可以根据此cookie去请求A银行的转账接口,那么A银行会误认为是用户进行操作从而使恶意网站得逞。

-推荐防御措施:

假如我们的网站是A银行,为了防止用户信息泄露,我们应该做这三件事:

  1. 将cookie设置为HttpOnly,让恶意网站无法通过脚本获取到cookie
  2. 所有增删改以及需要验证权限的请求都应该携带token
  3. Http头中有一个Referer属性,此属性表示请求Url地址,验证每一个请求的Referer是不是由自己系统发起的

SQL注入

-典型实例为:

用户输入的信息带有 delete 、drop等危害性十足的sql,就像用户登录时输入了用户名 “aaa;drop table user”,那么在我们没有任何防御措施的情况下就会变为“select * from user where username='aaa';drop table user”。然后呢,表就没了,你说尴不尴尬?

-推荐防御措施:

  1. 使用原生jdbc时要使用PreparedStatement 而不要使用Statement,
  2. 使用orm框架,像MyBatis、Hibernate等框架都对sql注入进行了很好的预防
  3. 密码任何时候都不要使用明文存放,避免攻击者直接获取用户信息
  4. 后台发生错误时不要直接返回异常信息,避免对服务器信息的泄露。建议对异常进行封装,返回可控的异常信息。

文件上传漏洞

-典型实例为:

没有对用户上传的文件做校验,恶意用户长时间上传超大文件占用系统资源,上传可执行脚本获取获取服务器信息

-推荐防御措施:

  1. 对用户上传做限流,每个用户每天最多上传多少内容。
  2. 对文件类型进行判断,不能通过后缀名判断,而要通过判断魔数(文件起始的几个字节)来判断,很多文件类型的魔数是不变的。

DDOS:分布式拒绝服务攻击

-典型实例为:

1.攻击者提前控制大量计算机,并在某一时刻指挥大量计算机同时对某一服务器进行访问来达到瘫痪主机的目的。

2.相信大家都知道TCP三次握手的机制,(如不了解请参考文章底部补充)攻击者利用此机制对服务器返回的ACK确认包不回应,这样服务器就会存在大量的等待列表,不断重试,等待队列满了以后不再接受TCP连接,从而阻挡了正常用户的使用

3.攻击者向DNS服务器发送海量的域名解析请求,DNS首先查缓存,如果缓存不存在的话会去递归调用上级服务器查询,直到查询到全球13台根服务器为止,当解析请求过多时正常用户访问就会出现DNS解析超时问题

-推荐防御措施:

使用缓存,当缓存中存在时就直接取出,不要频繁的连接数据库。

缩短 SYN Timeout时间,即缩短从接受到SYN报文到确定这个报文无效并丢弃该连接的时间。

限制源ip每秒发起的DNS请求等

补充:TCP三次握手机制

首先,请求端(客户端)发送一个包含SYN标志的TCP报文,SYN即同步(Synchronize),同步报文会指明客户端使用的端口以及TCP连接的初始序号;

第二步,服务器在收到客户端的SYN报文,将返回一个SYN+ACK的报文,表示客户端的请求被接受,同时TCP序号被加一,ACK即确认(Acknowledgment)。

第三步,客户端也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。

结语

写这篇文章的目的呢,其实不是说让大家通过这篇文章成为一个安全高手或者怎么的,只是想让大家了解一下这些常见的攻击手段。当你知道了这些攻击手段后看一下你手中的项目是否需要预防一下,毕竟未雨绸缪总是比临阵磨枪好的多,不是吗?

本文出自https://zhixiang.org.cn/#/blog/read/132e85fd-c3bf-4e78-acfd-0c73523f95a3,转载请保留。

常见的web攻击手段的更多相关文章

  1. 常见的Web攻击手段,拿捏了!

    大家好,我是小菜. 一个希望能够成为 吹着牛X谈架构 的男人!如果你也想成为我想成为的人,不然点个关注做个伴,让小菜不再孤单! 本文主要介绍 互联网中常见的 Web 攻击手段 如有需要,可以参考 如有 ...

  2. 安全|常见的Web攻击手段之CSRF攻击

    对于常规的Web攻击手段,如XSS.CRSF.SQL注入.(常规的不包括文件上传漏洞.DDoS攻击)等,防范措施相对来说比较容易,对症下药即可,比如XSS的防范需要转义掉输入的尖括号,防止CRSF攻击 ...

  3. 互联网安全架构之常见的Web攻击手段及解决办法

    一.Web 安全常见攻击手段 XSS(跨站脚本攻击) SQL 注入 CSRF(跨站请求伪造) 上传漏洞 DDoS(分布式拒绝服务攻击)等 二.攻击手段原理及解决方案 1.XSS攻击 原理:XSS 攻击 ...

  4. 常见的web攻击手段总结

    xxs攻击(跨站脚本攻击) 攻击者在网页中嵌入恶意脚本程序,当用户打开该网页时脚本程序便在浏览器上执行,盗取客户端的cookie.用户名密码.下载执行病毒木马程 序 解决: 我们可以对用户输入的数据进 ...

  5. 简单总结几种常见web攻击手段及其防御方式

    web攻击手段有几种,本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS XSS 概念 全称是跨站脚本攻击(Cross Site Scr ...

  6. 简单地总结几种常见web攻击手段及其防御方式

    web攻击手段有几种,本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS XSS 概念 全称是跨站脚本攻击(Cross Site Scr ...

  7. 几种常见web攻击手段及其防御方式

    XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS web安全系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 XSS 概念 全称是跨站脚本攻击(Cross ...

  8. 总结几种常见web攻击手段及其防御方式

    本文简单介绍几种常见的攻击手段及其防御方式 XSS(跨站脚本攻击) CSRF(跨站请求伪造) SQL注入 DDOS web安全系列目录 总结几种常见web攻击手段极其防御方式 总结几种常见的安全算法 ...

  9. 软件工程师应该关注的web攻击手段

    1.SQL注入------常见的安全性问题. 解决方案:前端页面需要校验用户的输入数据(限制用户输入的类型.范围.格式.长度),不能只靠后端去校验用户数据.一来可以提高后端处理的效率,二来可以提高后端 ...

随机推荐

  1. WebSocket入门及示例

    前言 一直在想要不要写下这篇,因为网上关于websocket的介绍和使用的好文实在太多太多,例如有这篇和这篇. 但我不管了,写下来,这样我就不用在想使用的时候总是去翻写过的源码了. 先回答几个简单的问 ...

  2. laravel的路由分组,中间件,命名空间,子域名,路由前缀

    laravel的路由分组,就是把一些具有相同特征的路由进行分组,比如一些路由需要进行验证,一些路由有共同的前缀,一些路由有相同的控制器命名空间等. 这样把路由组合在一起,方便管理,维护性更好. Rou ...

  3. Python+Selenium 自动化实现实例-处理分页(pagination)

    场景 对分页来说,我们最感兴趣的是下面几个信息 总共有多少页 当前是第几页 是否可以上一页和下一页 代码 下面代码演示如何获取分页总数及当前页数.跳转到指定页数 #coding:utf-8 from ...

  4. python中的继承和多态

    继承 继承的表现方式: class Animal(): pass class Cat(Animal): #animal是cat的父类,也可以说是基类 pass print(Cat.__bases__) ...

  5. NPOI颜色对照表

    颜色对照表:颜色 测试 Class名称 short        Test颜色 Black 8 Test颜色 Brown 60 Test颜色 Olive_Green 59 Test颜色 Dark_Gr ...

  6. docker私库Harbor部署(转载)

    系统环境 centos7.3docker-ce docker version: 18.03.0docker-compose version: 1.21.0 Install Docker CE 安装依赖 ...

  7. 解决Xcode8模拟器无法删除应用的问题

    关闭模拟器的​3DTouch.Hardware​ →Touch Pressure→Use Trackpad Force.

  8. 每日一练ACM 2019.0422

    Problem Description 根据输入的半径值,计算球的体积.   Input 输入数据有多组,每组占一行,每行包括一个实数,表示球的半径.   Output 输出对应的球的体积,对于每组输 ...

  9. php常用字符串方法

    chop()        移除字符串右侧的空白字符或其他字符 ltrim()        移除字符串左侧的空白字符或其他字符 rtrim()        移除字符串右侧的空白字符或其他字符 tr ...

  10. CentOS 6下升级Python版本

    CentOS6.8默认的python版本是2.6,而现在好多python组件开始只支持2.7以上的版本,比如说我今天遇到的pip install pysqlite,升级python版本是一个痛苦但又常 ...