一、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、防御措施
对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。
实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。
确认接收的的内容被妥善的规范化,仅包含最小的、安全的Tag(没有javascript),去掉任何对远程内容的引用(尤其是样式表和javascript),使用HTTP only的cookie。
使用HTTPS
当然,如上操作将会降低Web业务系统的可用性,用户仅能输入少量的制定字符,人与系统间的交互被降到极致,仅适用于信息发布型站点。

二、 CSRF

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

防御措施

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

三、SQL注入

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

防御措施

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

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

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

四、cookie窃取和session劫持

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

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

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

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

常见解决方案是白名单,将合法的要重定向的url加到白名单中,非白名单上的域名重定向时拒之;
重定向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最大重试次数。

八、文件上传攻击

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

分类

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

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

Web前端攻击方式及防御措施的更多相关文章

  1. 简单了解:Web前端攻击方式及防御措施

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

  2. [转帖][思路/技术]Mimikatz的多种攻击方式以及防御方式

    [思路/技术]Mimikatz的多种攻击方式以及防御方式 https://bbs.ichunqiu.com/thread-53954-1-1.html 之前学习过 抄密码 没想到还有这么多功能.   ...

  3. DDoS攻击、CC攻击的攻击方式和防御方法

    DDoS攻击.CC攻击的攻击方式和防御方法 - sochishun - 博客园https://www.cnblogs.com/sochishun/p/7081739.html cc攻击_百度百科htt ...

  4. web攻击方式和防御方法

    在http请求报文中载入攻击代码,就能发起对web应用的攻击.通过url查询字段或者表单.http首部.cookie等途径吧攻击代码传入,若这时web应用存在安全漏洞,那内部信息就会遭到窃取! 对we ...

  5. web前端攻击详解

    前端攻击成因 在web网页的脚本中,有些部分的显示内容会依据外界输入值而发生变化,而如果这些声称html的程序中存在问题,就会滋生名为跨站脚本的安全隐患 XSS跨站脚本攻击: 英文全称cross-si ...

  6. XSS攻击原理及防御措施

    概述 XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器 执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列 表,然后向联系 ...

  7. DDOS常见攻击类型和防御措施

    DDOS 攻击类型: SYN Flood 攻击 ACK Flood 攻击 UDP Flood 攻击 ICMP Flood 攻击 Connection Flood 攻击 HTTP Get 攻击 UDP ...

  8. WEB安全之垃圾信息防御措施

    防止垃圾评论与机器人的攻击手段如下: 1)IP限制.其原理在于IP难以伪造.即使是对于拨号用户,虽然IP可变,但这也会大大增加共攻击的工作量. 2)验证码.其重点是让验证码难于识别,对于“字母+数字” ...

  9. 158.Clickjacking点击劫持攻击实现和防御措施

    clickjacking攻击: clickjacking攻击又称为点击劫持攻击,是一种在网页中将恶意代码等隐藏在看似无害的内容(如按钮)之下,并诱使用户点击的手段. clickjacking攻击场景: ...

随机推荐

  1. 基于AllegroGraph实现Protege设计知识库模型的存储步骤

    在 https://www.w3.org/2001/sw/wiki/Protege 网站看到以下词语: “.....The Protégé platform supports two main way ...

  2. MySQL表与表之间的SQL Joins图介绍

    下图很好的解释了各表之间SQL Joins之间的关系

  3. gitbook安装与使用,并使用docker部署

    本文简单介绍如何安装并使用gitbook,最后如何使用docker构建书籍镜像. 1. 前置条件 需要Nodejs环境,安装npm,国内用户再安装cnpm npm install -g cnpm -- ...

  4. C# System.IO.StreamWriter

    实现一个 TextWriter,使其以一种特定的编码向流中写入字符. using System; using System.Collections.Generic; using System.Linq ...

  5. failed to create process怎么解决

    python 在cmd时,报错:failed to create process怎么解决 在cmd命令前加 : python -m 命令(如:python -m conda update conda)

  6. Visual Studio进行Web性能测试- Part III

    Visual Studio进行Web性能测试- Part III 原文作者:Ambily.raj 对于一个多用户的应用程序,性能是非常重要的.性能不仅是执行的速度,它包括负载和并发方面.Visual ...

  7. vim编辑器里shift + 3 出现高亮问题,怎么取消掉

    在编辑器里非编辑状态,输入: shift + 3 (#) shift + 8 (*) 会出现高亮显示,看着很不舒服, 取消方式: :noh :/aaa (随便的字母或数字都可)

  8. Dropping TSO features since no CSUM feature

    今天在虚拟机中练习docker的时候突然linux系统反复重启,一下子没有发现原因,不断打开虚拟机还是自动会关机,一下子很纳闷. 打开计算机里,一看原来虚拟机所在磁盘空间满了.怪不得 出现这个问题,清 ...

  9. 【Apache】Apache的安装和配置

    Apache是世界非常流行的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一. Apache在Win7上的安装 下载apa ...

  10. SQL Server 2016 查询存储性能优化小结

    SQL Server 2016已经发布了有半年多,相信还有很多小伙伴还没有开始使用,今天我们来谈谈SQL Server 2016 查询存储性能优化,希望大家能够喜欢 作为一个DBA,排除SQL Ser ...