网络安全漏洞
前言
最开始我选择计算机这个专业去报考的时候,我就是因为我觉得黑客很帅,我相信不止是我,很多人都和我一样,但是在大学期间,我们学的课程没有一点这个方面的,今天的学习就是网络安全的,我觉得也很有趣的。
什么是漏洞?
首先我们在了解漏洞前,我们先去了解一个网站的基本构成,一个网站包括前端,负责页面的展示以及一些接口的调用,后端去提供一些数据的接口,以及去处理一些业务的逻辑,完成一些数据的处理,还有一些网关去做代理,比如Nginx,还有一些静态资源的存储。以上的每一些部分都可能存在一些安全上的问题。
我们常听说过的一些安全问题,比如数据泄漏,服务瘫痪,成果失窃,系统劫持,这写可能是出于各种目的,有可能是政治目的,经济目的,还是竞争目的,原因是有千千万的,我们学习的目的就是帮助企业规避漏洞,更好的保护网络安全。
网站漏洞一般分为服务器漏洞和客户端漏洞,接下来我们从这两方面介绍。
服务器漏洞
-
SQL注入
数据库是很常见也是使用很多的一部分,如果在SQL语句中静态模板和动态数据部分没有严格区分的话,就可能被攻击者抓住漏洞,会造成一些不可预知的后果。
那么我们该怎么去防护呢?
- 尽量不要基于DB的Raw方法拼接构造SQL语言,而应该使用预编译,OMR框架
- 使用OMR框架时,应该注意框架中的特性,可能存在不安全的写法导致的SQL注入问题
- 在复杂场景一定要使用拼接SQL,需要对外部输入进行转义
-
命令执行
代码中遇到需要调用某个命令才能完成的功能时候,会涉及到命令拼接,如果命令拼接没有完全做好安全过滤,那么将会导致命令注入风险,服务器权限将会被控制。
那么我们该怎么去防护呢:
- 对动态的值尽可能设置白名单进行验证
- 如果某些位置无法白名单,需要尝试对数据类型进行校验
- 特殊字符黑名单的过滤或者转义
-
越权漏洞
攻击者可以通过开通另外的测试管理员账号抓包获取接口,或者通过逆向前端代码方式获取实际接口,然后绕过前端,直接尝试访问后端接口,获取数据详情
那么我们该怎么去防护呢:如果是简单的场景,可以将接口在路由器级别进行分组,对不同的API分组引入Middleware进行权限拦截,获取当前用户角色以确定是否可以访问此接口
-
SSRF
SSRF又称服务器请求伪造攻击,指攻击者利用后端服务器为跳板,让后端服务向非预期网络地址发出恶意请求,主要是内网地址,获取敏感信息或执行恶意操作。
那么我们该怎么去防护呢:
- 限制文件类型:如果系统只需要图片类型,可以从服务端解析文件格式,限制只能传入特定的文件格式
- 站库分离:应用部署的位置和上传的文件分离,一般可以使用TOS,oss等进行文件存储
- 防止图床:对图片访问链接进行限制,包括时间限制,访问身份限制等
由于时间问题,客户端漏洞我们就放到下一章去介绍。