应用安全:Web攻击手段及防御之一网络层或漏洞
常见的XSS攻击、SQL注入、CSRF攻击等攻击方式和防御手段,这些都是针对代码或系统本身发生的攻击,另外还有一些攻击方式发生在网络层或者潜在的攻击漏洞在这里也总结一下。
DOS/ddos攻击
DOS攻击全称为Denial of service,即拒绝服务,其主要攻击目的是使计算机硬件或网络宽带资源耗尽从而造成服务器无法提供正常服务,而DDOS攻击就是Distributed denial of service,即分布式的拒绝服务攻击,攻击者利用多台服务器资源对同一个目标服务器发起攻击,从而使目的服务器快速陷入崩溃。
不管是DOS还是DDOS,它们的本质都是通过各种手段消耗目标服务器资源,从而使目标服务器瘫痪不能接受用户的服务。一般租用云服务商的服务器资源都是有Web应用防火墙能阻止dos攻击的,如果是自己的服务器需要专业的运维人员对服务器进行相关设置以防止DOS攻击。
DNS攻击
DNS攻击包括有DNS劫持和DNS污染。
DNS劫持即通过某种手段控制DNS服务器,篡改域名真实的解析结果,并返回攻击者的ip地址,从而跳到了攻击者的页面。像我们宽带快到期了或者有什么推广信息,电信总会弹出一个营销界面提示我们宽带快到期了或者什么活动的,这其实就是运营商DN劫持搞的鬼。像在我们本地,也经常会配置host文件以开发测试联调,或者访问那些访问不了你又想访问的网址。防止DNS劫持可以用国外知名的DNS服务器,像google的8.8.8.8,或者准备两个域名,一个被劫持了引导用户去访问另一个。
DNS污染发生在请求DNS解析前第一步,直接在协议上对DNS解析请求进行干扰,因为DNS查询是基于不可靠无连接的UDP协议,它是没有经过认证的,很容易被篡改,所以攻击者通过在UDP的53端口进行DNS查询检测,并返回攻击者错误的解析结果给用户,这就是DNS污染。DNS污染可以通过自己搭建DNS服务器,采用TCP加密的形式,但可能延迟比较大。
错误回显
这个在SQL注入防御篇幅中有描述,就是不能把数据库表及代码关键信息输出到用户浏览器,这里不再详细描述。
网页注释
为了开发或联调的便利性,我们经常在代码使用注释,某些注释可能包括重要信息,给攻击者以可乘之机,所以这个最好养成良好的习惯及时删除敏感的注释或者开发完成对代码进行审视。
文件上传
一般的网站都会有文件上传功能,如人才网就会有包括用户的头像、简历附件什么的,如果攻击者上传一个.exe可执行程序到服务器,那么这个执行程序很有可能操控这个服务器,或者通过这个服务器间接攻击其他内部服务器群,后果是十分严重的。
所以,针对上传功能要限制用户可上传的文件类型,比如头像肯定是jpg等图片格式;文件最好分开存储,一是能提高系统性能,二是就算攻击者攻击了文件服务器也不一定能攻击到别的服务器;另外,存储采用重命名方式,像QQ之间传送文件一般会在文件名后面加上一个”.重命令”后缀,就是为了防止用户点击.exe文件造成病毒攻击。