常见的网络攻击:
- XSS 跨站脚本攻击(前端):在网站里嵌入恶意脚本程序,当用户打开网站时盗取cookie盗取信息。
分为存储型XSS(持久性)和反射型XSS(非持久性)
解决方法:1.继承HttpServletRequestWrapper,重写getParameter(),getHeader()等方法。2.输入(和URL)进行过滤。自定义过滤器,使用自定义的HttpServletRequest - CRSF 跨站请求伪造攻击,伪装受信任用户向第三方平台发送恶意
解决方案:1.设置Cookie为HttpOnly;由于CRSF是通过cookie来发送恶意请求的,设置为HttpOnly属性后Java或者Applet就不能发送恶意请求了。
2.添加Token验证,让服务端再次进行验证。
3.添加Referer识别,Referer是Http请求header中的一部分;但是用户可以设置浏览器使其在发送请求时不再提供Referer。 - DDos 分布式拒绝服务攻击;是基于Dos发展来的(Dos是利用信任的客户端向服务端频繁发送请求从而使服务器无法处理,请求超时;是一对一的)
DDos的最大难点在于攻击的成本远低于防御的成本。
常用的方式 1:SYN泛洪;攻击前先进行TCP连接
防御的手段:A.硬件(增加带宽,提升硬件配置,硬件防火墙)
B.单个主机(及时修复漏洞、升级安全补丁;安装专业的主机安全监测防护软件;关闭不必要的服务和端口)
C.整个服务器系统
2.DNS Query Flood DNS查询攻击
使用https加密可以解决;通过程序发送大量域名解析请求,
3.ACK泛洪:大量ACK冲击服务器
4.Connecting泛洪攻击:利用真实IP在服务器建立大量连接;服务器上残余连接(WAIT状态)过多,效率降低,甚至资源耗尽,无法响应。蠕虫传播过程中会出现大量源IP地址相同的包,对于TCP蠕虫则表现为大范围扫描行为,消耗骨干设备的资源,如防火墙的连接数。
5.HttpGet泛洪:利用代理服务器向受害者发送大量get请求,主动请求动态页面,涉及到数据库访问操作;数据库负载以及数据库连接池负载过高,无法响应正常请求。
常见网络攻击的分类:
高层次一般分为主动攻击和被动攻击;主动攻击是包含访问者其所需信息的故意行为;被动攻击主要是收集信息而不是进行访问,数据的合法用户一点都察觉不到。
常见的攻击可以分为四类:
- 窃听:通过非法手段对系统进行监视从而获得一些有关系统安全的关键信息,攻击方法有:键击记录、网络监听、非法访问数据、获取密码文件
- 欺骗:通过冒充正常用户以获取攻击目标访问权限或获取关键信息的攻击方法;攻击方法有:获取口令、恶意代码、网络欺骗。
- 拒绝服务:指终端完全拒绝对合法用户、网络、系统以及其他资源的攻击方法;攻击形式有:资源耗尽型、导致异常型、欺骗型。
- 数据驱动攻击:通过向某个程序发送数据,以产生非预期结果攻击,通常为攻击者给出访问目标系统的权限,大致可以分为:缓冲区溢出、格式化字符串攻击、输入验证攻击、同步漏洞攻击、信任漏洞攻击。