欢迎光临网防CDN首页! 您好, 新人有礼

网防CDN

新闻公告

确保您的API安全的最佳实践

发布时间:2018-04-13 10:00
cdn加速

随着越来越多的组织提供API访问权限以使其信息可供更广泛的受众使用,确保访问同样具有越来越重要的意义。随着云移动和混合环境的日益普及风险在不断增加。网络威胁和DDoS攻击针对的是企业应用程序,因为后端系统变得更易于访问。在这种情况下API可能是一个重要的漏洞点,因为它能够为外部开发人员提供程序化访问。
 
当组织开放其Web应用程序访问权时就发生了前一波安全漏洞。引入了诸如Web应用程序防火墙(WAF)之类的防御措施来缓解这些安全漏洞。但是这些防御措施对于所有API攻击无效,您需要关注API接口的安全性。
 
API安全:
 
主要的API接口是REST API它基于HTTP协议,并且通常是JSON格式的响应。保护您的API接口与Web访问安全性有很多共同之处,但由于:接触更广泛的数据、直接访问后端服务器、能够下载大量的数据、不同的使用模式。
 
认证:
 
第一道防线是识别用户,人或应用程序并确定用户有权调用您的API。我们都很熟悉输入用户名和密码,并且可能还有一个额外的标识符来访问Web界面。对应于API在请求中指定了API ID和API密钥以对用户进行身份验证。API密钥是为API的每个用户为应用程序生成的唯一字符串。
 
访问控制:
 
并非所有认证的用户都必须被授权访问所有提供的API。例如某些用户需要访问检索(GET)信息但不应该能够更改(PUT)任何信息。使用访问控制框架(如OAuth)您可以控制每个特定API密钥可以访问的API列表。要防止可能导致DDoS攻击或其他滥用API服务的大量API请求,请针对每个API对给定时间间隔内的请求数应用限制。超过速率时至少暂时阻止从API密钥访问并返回429(太多请求)HTTP错误代码。
 
加密:
 
为保护传输中的请求,要求HTTPS用于所有访问以便使用TLS保护和编码消息。为了保护JSON格式的响应请考虑使用JSON Web令牌(JWT)标准。JWT是一个开放标准(RFC 7519),它定义了一个紧凑且自包含的方式,用于在各方之间安全地传输信息作为JSON对象。这些信息可以通过数字签名进行验证和信任。可以使用秘密(使用HMAC算法)或使用RSA的公钥/私钥对对JWT进行签名。
 
保密:
 
作为最佳做法我们不希望公开任何超出所需的信息。出于这个原因请注意错误消息不会显示太多的信息。
 
应用层攻击:
 
一些演员可以在绕过安全访问和数据界面后定位系统。例如他们可以通过网络钓鱼获得授权凭证。您需要验证所有数据以防止应用程序层攻击例如:
 
1.跨站点脚本:将恶意脚本注入其中一个请求参数。
 
2.代码注入:将有效代码注入到服务中,如SQL注入或XQuery以打开用户控件的界面。
 
3.业务逻辑:允许攻击者规避业务规则。
 
4.参数污染攻击:通过修改API请求的参数来利用API请求中发送的数据。
 
像在任何界面上一样应用严格的输入验证包括:
 
①在可能的情况下将参数值限制在预期值的白名单中。
 
②为了方便列入白名单请输入强大的输入值。
 
③根据正式模式语言验证发布的结构数据以限制内容和结构。
 
黑名单有风险的内容例如SQL模式操作语句。
 
记录所有API访问权限这对协助解决任何问题至关重要。从这些日志中您可以轻松监控活动并可能发现任何模式或过度使用活动。
 
安全框架:
 
考虑使用内置许多安全功能的现有API框架。如果您必须开发自己的安全功能请将安全性部分从应用程序部分中分离出来。通过这种方式安全性是统一的,开发人员可以专注于应用程序逻辑。不要忽视分配资源来测试API的安全性。
 
网防cdn专业提供国内外高防cdn加速服务
 
本文链接:http://www.f8i.com/news/464.html