Web开发安全防御向 —— 引入
从上一篇文章我们知道了对于平时看到的网页我们都得与服务器进行反复进行通讯,在这个过程中,传输的内容基本上是在客户端与服务端进行联系传输。但是我们通常都知道服务器与客户端都会存在需要保密的数据内容,因此或多或少都会涉及到安全内容。不过我们今天要了解的主要是从防御方向 上入手。
🧨安全防御来源漏洞(攻击类型简述)
目前我们所熟知的几大攻击方法分别有:XSS、CSRF、Dos、DDos、Injection、中间人攻击等。大家耳熟能详且被使用率最高的想必就是:DDos、SQL注入(Injection 注入攻击)、中间人攻击等等这几样是一直以来使用率名列前茅且危害严重的 “主力军”。他们通过不同的逻辑与方式,不断威胁着我们的信息安全,因此先了解下相关概念更有利于进行我们的安全防御。
DDos攻击与Dos攻击
目前全球使用的网络攻击最多就要数DDos攻击了,它又被称为分布式拒绝服务攻击。
简单来说,就是通过大量IP不同的主机,让它们在同一个软件或是病毒等方式控制下,对一个服务端同时发起大量申请(TCP三次握手、发送无效的UDP包、占用服务端口流量等),使服务器在面对大量访问请求时造成服务阻塞,无法正常处理普通用户的需求,进而对企业与云端造成巨大损失。
而Dos攻击作为DDos攻击的前身,名称也与其差别不大,即拒绝服务攻击 。它的区别就在于Dos攻击是来自于单台或是少量主机发起的攻击,整体的规模性与体量远小于DDos攻击。
Injection 注入攻击
关于注入攻击最常见且棘手的就要数SQL注入作为代表 了,当然除了SQL注入还有这两个:命令注入、代码注入 。他们共通的地方就在于是从服务器进行入手攻击,通过寻找相关数据漏洞、后门漏洞与非安全查找等进行非法操作。
像SQL注入就是通过可输入控件输入非安全查询语句(如SQL关键词、特殊运算符等),绕开登陆验证等形式的限制,从而返回获取大量个人私密数据与商业等机密,易造成惨重损失。
而命令注入则是通过客户端的应用程序向服务端发送经过“精心炮制”的代码(即将恶意命令混入正常输入传递给服务端),让服务器自动执行命令从而暴露数据、敏感文件、后门等内容。
最后的代码注入,则是通过客户端本身对外部脚本代码处理的逻辑核查漏洞进行恶意代码注入,使得正常代码中混入了攻击者的恶意代码,像是在 PHP 用eval()处理处嵌入,致服务器执行恶意逻辑,暴露机密、篡改运行状态。
中间人攻击
中间人攻击之所以能在 “攻击热门榜” 上占据一席之地,是因为随着当下的无线网络普及,公共免费 Wi-Fi 热点常因缺乏有效安全管控,因而变成攻击者的首选目标。
他们通过施展 ARP 欺骗、DNS 欺骗等手段,神不知鬼不觉地将自己安插在通信双方之间,截获双方传输的各类关键信息。同时,它能还悄然改变数据内容后再传递给接收方,让接收方在毫无察觉的情况下陷入骗局,引发诸如资金被盗刷、隐私泄露扩散、商业情报被窃取利用等严重后果。
XSS攻击、CSRF攻击等
XSS攻击,称作跨站脚本攻击。随着当下 Web 技术革新,单页应用(SPA)等复杂前端架构兴起,对于这类应用网页攻击机会与日俱增。攻击者通过借助恶意脚本注入,轻松窃取用户的宝贵资料,从而达到自己的个人目的。
而CSRF(即跨站请求伪造),则是通过用户已登录的网站,诱导用户向服务端发送未知的恶意请求,从而对服务端实现流程得到分析,进而针对相应的流程关键点进行攻击。
✨安全防御方式方向
DDos与Dos防御策略
由于这种攻击方式是通过大量的流量阻塞进行服务瘫痪,因此我们可以从三方面入手:
- 流量限制策略:通过对每个访问IP进行请求频率设置,同时可以通过防火墙、负载均衡器配置示例,对访问次数、地点异常的请求进行拦截,从而减少负载;
- 负载优化:对服务端进行分布式布局,分化各部分流量,同时优化服务端的访问结构与数据结构,保证各端的流量分配合理化;
- 服务器优化:从服务器的承载能力入手,优化硬件的质量,提高其冲击性能的韧性。
Injection注入攻击 防御策略
对于容易使用到相关关键字符与代码,那就从代码防御本身处理:
- 对于使用到多种代码语句与SQL查询语句等系统中,可以通过自动化对相关内容、参数查询规范化,保证相关字符串对应相应的格式,从而减少信息泄露;
- 引入白名单模式对某些必要字符进行添加,从而排除部分没有必要的数据源,从源头保证安全。
中间人攻击防御
对于普通用户来说,我们需要提高自身的网络意识,对于不熟悉的、陌生的网络不随意链接,从而防止被一些假冒的钓鱼网站获取到个人的敏感信息。
而对于维护人员来说,可以通过相应的流量检测软件与地址监测来检测是否存在有异常的情况。
XSS、CSRF攻击等防御策略
对于这两个攻击,我们可以通过加强输入验证与过滤,防止某些恶意上传的内容被执行(设置白名单优先机制、严格格式输入)。同时可以进行内容安全策略(CSP)设定,精细管控页面资源加载源与脚本执行规则,限制脚本仅能从信任域加载。
结尾
从 DDoS 与 DoS 的汹涌流量,到 Injection 攻击对系统内核的渗透;从中间人攻击对信息的“截掠”,再到 XSS、CSRF 凭借巧妙伪装获取用户信息,每一种攻击都考验着我们守护网络安全防线的智慧与决心。
对于开发者而言,在代码编写的每一行、架构设计的每一环,记住安全理念,严谨校验输入、加固数据传输通道、精细管控资源加载,才能铸就坚不可摧的应用堡垒,保障好我们每个人的信息安全。