一、XSS

【Cross Site Script】跨站脚本攻击
恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

1、Reflected XSS

基于反射的XSS攻击,主要依靠站点服务端返回脚本,在客户端触发执行从而发起Web攻击。Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。

2、Stored XSS

该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。

3、DOM-based XSS

本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。

4、防御措施

  1. 对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。
  2. 实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。
  3. 确认接收的的内容被妥善的规范化,仅包含最小的、安全的Tag(没有javascript),去掉任何对远程内容的引用(尤其是样式表和javascript),使用HTTP only的cookie。
  4. 使用HTTPS

当然,如上操作将会降低Web业务系统的可用性,用户仅能输入少量的制定字符,人与系统间的交互被降到极致,仅适用于信息发布型站点。

XSS的原理分析与解剖
XSS攻击及防御

二、 CSRF

【Cross Site Request Forgery】站点伪造请求
跨站点参考伪造通过在访问用户被认为已经通过身份验证的Web应用程序的页面中包含恶意代码或链接来工作。 如果该Web应用程序的会话没有超时,攻击者可能执行未授权的命令。

防御措施

  1. 验证 HTTP Referer 字段 ;
  2. 在请求地址中添加 token 并验证 ;
  3. 在 HTTP 头中自定义属性并验证
  4. 正确使用GET,POST和Cookie;
  5. 在非GET请求中增加伪随机数;

预防CSRF攻击
CSRF攻击介绍及防御

三、SQL注入

用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据。
原理如下图所示:

防御措施

  1. 采用sql语句预编译和绑定变量,是防御sql注入的最佳方法。采用JDBC的预编译语句集,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可。

    原理:采用了PreparedStatement,就会将sql语句:”select id, no from user where id=?” 预先编译好,也就是SQL引擎会预先进行语法分析,产生语法树,生成执行计划,也就是说,后面你输入的参数,无论你输入的是什么,都不会影响该sql语句的 语法结构了,只会被当做字符串字面值参数。

  2. 使用正则表达式来过滤一些sql关键字,如or、where等。

    【Web安全与防御】简析Sql注入与防御措施

四、cookie窃取和session劫持

Cookie包含了浏览器客户端的用户凭证,相对较小。Session则维护在服务器,用于维护相对较大的用户信息。cookie被攻击者窃取、session被劫持即攻击者劫持会话,合法登录了你的账户,可以浏览大部分用户资源。
用通俗的语言,Cookie是钥匙,Session是锁芯。
最基本的cookie窃取方式:xss漏洞。
cookie窃取和session劫持

五、钓鱼攻击【重定向攻击】

攻击者会发送给受害者一个合法链接,当链接被点击时,用户被导向一个似是而非的非法网站,从而达到骗取用户信任、窃取用户资料的目的。

防御措施
对所有的重定向操作进行审核,以避免重定向到一个危险的地方.

  1. 常见解决方案是白名单,将合法的要重定向的url加到白名单中,非白名单上的域名重定向时拒之;
  2. 重定向token,在合法的url上加上token,重定向时进行验证.

六、Http Heads攻击

HTTP协议在Response header和content之间,有一个空行,即两组CRLF(0x0D 0A)字符。这个空行标志着headers的结束和content的开始。“聪明”的攻击者可以利用这一点。只要攻击者有办法将任意字符“注入”到headers中,这种攻击就可以发生。

防御措施
过滤所有的response headers,除去header中出现的非法字符,尤其是CRLF。

七、拒绝服务攻击【DoS】

攻击者想办法让目标机器停止提供服务:一是使用SYN flood迫使服务器的缓冲区满,不接收新的请求;二是使用IP欺骗,迫使服务器把非法用户的连接复位,影响合法用户的连接。

防御措施
对于SYN flood:启用SYN Cookie、设置SYN最大队列长度以及设置SYN+ACK最大重试次数。

八、文件上传攻击

用户上传一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力。

分类

  1. 文件名攻击:上传的文件采用上传之前的文件名,可能造成客户端和服务端字符码不兼容,导致文件名乱码问题;文件名包含脚本,从而造成攻击.
  2. 文件后缀攻击:上传的文件的后缀可能是exe可执行程序,js脚本等文件,这些程序可能被执行于受害者的客户端,甚至可能执行于服务器上.因此我们必须过滤文件名后缀,排除那些不被许可的文件名后缀.
  3. 文件内容攻击:IE6有一个很严重的问题 , 它不信任服务器所发送的content type,而是自动根据文件内容来识别文件的类型,并根据所识别的类型来显示或执行文件.如果上传一个gif文件,在文件末尾放一段js攻击脚本,就有可能被执行.这种攻击,它的文件名和content type看起来都是合法的gif图片,然而其内容却包含脚本,这样的攻击无法用文件名过滤来排除,而是必须扫描其文件内容,才能识别。

防御措施

  1. 文件上传的目录设置为不可执行。
  2. 判断文件类型。在判断文件类型的时候,可以结合使用MIME Type,后缀检查等方式。因为对于上传文件,不能简单地通过后缀名称来判断文件的类型,因为攻击者可以将可执行文件的后缀名称改为图片或其他后缀类型,诱导用户执行。
  3. 对上传的文件类型进行白名单校验,只允许上传可靠类型。
  4. 上传的文件需要进行重新命名,使攻击者无法猜想上传文件的访问路径,将极大地增加攻击成本。
  5. 限制上传文件的大小。
  6. 单独设置文件服务器的域名。

Web前端攻击方式及防御措施相关推荐

  1. 目前最全DDOS攻击方式及防御措施,不看你就亏了!

    DDoS的攻击方式 1.Synflood 该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYN ACK后并不回应. 这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没 ...

  2. 常见的Web前端攻击

    每天一个前端面试题之 常见的Web前端攻击 一.CFRS 跨站请求伪造,Cross-site request forgery,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web ...

  3. xss攻击突破转义_WEB安全之XSS攻击方式与防御方式

    上一期给大家简单介绍XSS以及其操作,本期将带大家了解XSS比较常见的攻击方式与防御方式,一起去了解一下~ XSS 常见攻击方法 1.绕过 XSS-Filter,利用 <> 标签注入 Ht ...

  4. CSRF攻击原理及防御措施

    CSRF,即跨站请求伪造(Cross-site request forgery) 攻击原理 用户登录受信任网站A,产生cookie 用户访问攻击网站B,网站B返回攻击代码并发出要登录网站A的请求 网站 ...

  5. xss原理、攻击方式与防御

    xss原理: xss叫跨站脚本攻击,是Web程序中常见的漏洞只用于客户端的攻击方式,其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执 ...

  6. 几种常见Web安全攻击方式 CSRF 、XSS 、SQL注入

    ps: 如果有任何问题可以评论留言,我看到后会及时解答,评论或关注,您的鼓励是我分享的最大动力 转载请注明出处:https://blog.csdn.net/qq_40938301/article/de ...

  7. php攻击方式及防御方法,Syn Flood 攻击 及其一般防御方法

    防火墙通知受到Syn Flood攻击,并解释说: A SYN Flood is an attempt to consume memory and resources. A Normal TCP/IP ...

  8. 服务器被攻击方式及防御措施?

    主流的服务器攻击方式有多种手段,但是唯独DDoS攻击.CC攻击以及ARP欺骗,这些攻击方式被称为三大攻击手段,不仅可以致使服务器瘫痪,而且还很无解. DDOS攻击 DDoS攻击全名叫做分布式拒绝服务( ...

  9. Linux服务器被攻击方式及防御措施?

    主流的服务器攻击方式有多种手段,但是唯独DDoS攻击.CC攻击以及ARP欺骗,这些攻击方式被称为三大攻击手段,不仅可以致使服务器瘫痪,而且还很无解.www.xy3000.com DDOS攻击 DDoS ...

最新文章

  1. java编程思想 入门_java编程思想学习(基础)
  2. Windows搭建FTP服务
  3. 数据库-优化-MYSQL数据库设计规范
  4. PyCairo 中的图片
  5. 面试官:说一下List排序方法
  6. Android开发:4-3、Activity常用其他API接口、屏幕旋转
  7. Python交互模式方向键出现乱码
  8. OpenShift 4 Hands-on Lab (12) 使用配置参数和环境变量
  9. C++_程序内存模型_内存四区_栈区_堆区---C++语言工作笔记029
  10. Unicode和ANSI之间转换 - NotePad++轻松实现
  11. Android性能优化---布局优化
  12. [转载]Oracle Minus关键字
  13. k8s——Kubernetes配置yaml文件详解
  14. 实现用python给微信指定联系人在指定时间发送消息(仅供学习)
  15. Netapp 存储文件共享-windows 系统应用
  16. C# OpenXml组件
  17. MFC添加afx_msg点击事件
  18. 哔哩哔哩面试经验分享
  19. 【计算机组成原理】计算机组成原理背景
  20. 计算机网络用英语怎么表达,网络用英语怎么说

热门文章

  1. 与汉语拼音不同的中国部分城市英文名
  2. 【应急响应】挖矿脚本检测指南威胁情报样本定性文件清除入口修复
  3. python开源oa系统_「开源」目前见过的最好的开源OA产品
  4. 查询每个部门中入职日期一致的员工信息
  5. 计算机组成原理快速加法器与32位ALU设计实验报告(8位可控加减法电路设计、CLA182四位先行进位电路设计、4位快速加法器设计、16位快速加法器设计、32位快速加法器设计)
  6. 美团面试小感:认知撑起的格局
  7. java中注解动态传参_Java自定义注解源码+原理解释(使用Java自定义注解校验bean传入参数合法性)...
  8. 免费!!!亚马逊销量数据下载助手软件
  9. rabbitmq简单入门
  10. mysql 1205错误