文章目录
- 一、参数校验
- 二、统一封装返回值
- 三、做权限控制
- 四、加验证码
- 五、 限流
- 六、加ip白名单
- 七、校验敏感词
- 八、使用https协议
- 九、数据加密
- 十、做风险控制
在日常工作中,开发接口是必不可少的事情,无论是RPC
接口还是HTTP
接口,我们都应该考虑一个问题:如何保证接口的安全性呢?
常见保证接口安全的技巧如下:

一、参数校验
保证接口安全的第一步,也是最重要的一步,需要对接口的请求参数做校验。
如果我们把接口请求参数的校验做好了,可以拦截大部分的无效请求,节省了机器资源,也避免了程序报错。
通常我们可以按如下步骤做校验,当然,最重要的是根据具体的业务场景和诉求做校验
:
- 校验参数是否为空 ,有些接口中可能会包含多个参数,有些参数允许为空,有些参数不允许为空,我们需要对这些参数做校验,防止接口底层出现异常。
- 校验参数类型 ,比如:
age
是int
类型的,用户传入了一个字符串:"123abc"
,这种情况参数不合法,需要被拦截。 - 校验参数的长度 ,特别是对于新增或者修改数据接口,必须要做参数长度的校验,否则超长了数据库会报异常。比如:数据库
username
字段长度是30
,新用户注册时,输入了超过30
个字符的名称,需要提示用户名称超长了。虽说前端会校验字段长度,但接口对参数长度的校验也必不可少。 - 校验枚举值 ,有些接口参数是枚举,比如:
status
,数据库中设计的该字段只有1、2、3
三个值。如果用户传入了4
,则需要提示用户参数错误。 - 校验数据范围 ,对于有些金额参数,需要校验数据范围,比如:单笔交易的
money
必须大于0
,小于10000
。
二、统一封装返回值
对接口返回值统一封装是可以让代码更规范,也能使得接口更安全。
假如有这样一种场景:某个接口底层的
sql
,在某种条件下有语法问题。某个用户请求接口之后,在访问数据库时,直接报了sql
语法错误,将数据库名、表名、字段名、相关sql
语句都打印出来了。此时,如果你的接口将这些异常信息直接返回给外网的用户,有些黑客拿着这些信息,将参数做一些调整,拼接一些注入
sql
,可以对你的数据库发起攻击。
因此,非常有必要对接口的返回值做统一的封装。
例如下面这样:
{
"code":0,
"message":null,
"data":[{"id":123,"name":"abc"}]
}
该json
返回值中定义了三个字段:
code
:表示响应码,0
-成功,1
-参数为空,2
-参数错误,3
-签名错误4
-请求超时5
-服务器内部错误等。工作中对于错误码的定义也有一定规范和技巧 ,如定义到同一个文件中,10001001,前四位1000表示业务,比如活动管理系统,1001表示具体错误 ,如参数校验失败
。message
:表示提示信息,如果请求成功,则返回空。如果请求失败,则返回我们专门在代码中处理过,让用户能看懂的错误信息。data
:表示具体的数据,返回的是一个json
字段。
对返回值这样封装之后,即使在接口的底层出现了数据库的异常,也不会直接提示用户,而是内部判断错误后,给用户提示的是服务器内部错误。
注:工作中分为B端和C端两种服务场景
B端
一般是内部使用的一些管理系统,这种系统对于报错应该返回给前端非常清晰明确的错误,这样产品和运营以及研发和测试等同事能很快知道出了什么错。C端
则是直接给外部用户使用的,我们不用给外部透露过多细节,出错时应该用一些兜底的页面或者策略,错误提示也应该是处理过不包含内部信息的,且能让用户能看得懂的信息,如服务器开小差啦,请稍后重试!,
下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用!
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
网络安全工程师企业级学习路线
零基础入门视频教程
所有资料共282G,朋友们如果有需要全套资料包,可以点下面卡片获取,无偿分享!