PHP如何安全的对外提供api

 时间:2024-10-11 21:06:59

当今web开发做前后端分离的设计已经很常见了,所谓的前后端分离,server(服务)端提供相关的接口给client(客户端),客户端可以是多种,可以是PC页面,HTML5页面,APP,小程序等等,实现一个接口多端使用,大大地减少了后端的开发量,但是在我们对外提供相关的接口时,一定要注意接口的安全性,防止别人攻击我们的网站,本文给大家简单的讲解一下接口的安全性主要围绕哪几方面展开。

身份凭证授权验证机制(Token)

1、这个机制可以有效的防鸦泸嚏烊止陌生用户访问接口,如何实现这个机制呢?1.调用接口的用户提供账号和密码(或者API KEY和 API Secret),2.使用账号和密码(或者A霸烹钟爷PI KEY和 API Secret)登录,服务端返回一个随机生成的token,可以是随机字符串,也可以是UUID等,把它存于数据库或缓存中,然后返回给客户端3.客户端调用接口时,参数带上返回的token,服务端验证token,若有效则允许客户端访问接口,否则拒绝访问

PHP如何安全的对外提供api

设置时间戳超时机制(timestamp)

1、这个机制可以有效的防止DOS攻击1.客户端每次请求接口都要带上当前的时间戳2.服务端获取到时间戳参数之后就与当前时间对比3.如果时间差大于某个设置的值(比如3分钟),则设置请求无效

PHP如何安全的对外提供api

签名机制(sign)

1、这个机制可以有效的防鸦泸嚏烊止数据被其他用户篡改1.客户端登录请求获取token2.使用token 和 当前时间戳 加请求中的其他参数(除了 sign 本身以外),按照规定的盒作柩锟顺序排序,比如键值字典排序( PHP 的KSORT() )组合成一个请求参数字符串,3.使用MD5或者SHA-1算法加密请求参数字符串,根据需求可以在加密中加点盐(加密字符串),生成sign4.客户端每次请求带上 sign , 然后在服务端用同样的算法生成sign签名 , 两者进行比对,相等则允许访问接口

PHP如何安全的对外提供api

一次访问有效机制

1、这个机制可以确保URL被别人获取了也无法使用(比如爬取数据)1.客户端第一次访问时,将生成的sign放到缓存或者数据库中。2.客户端第二次访问,判断sign是否与存在缓存或者数据库中的sign一致。3.不一致则允许调用接口,一致则拒绝用户调用接口。4.由于sign的存在,所以参数无法篡改,所以一个sign只能调用一次接口,再次调用就无效了。

PHP如何安全的对外提供api

IP访问限制机制

1、这个机制可以限制每个IP请求接口的次数。1.获取客户端请求IP,2.每次访问记录客户端的IP请求记录,3.判断客户端IP请求在短时间内(比如一分钟)是否超过规定的次数(比如10次),4.如果超过则临时拒绝该IP访问,并记录当日IP访问异常次数,5.如果当日该IP访问异常次数超过规定次数(比如3次),则拒绝该IP继续访问接口。

PHP如何安全的对外提供api
  • js怎么修改背景图片定位的值?
  • 易语言怎么调用模块
  • MySQL保存好的sql文件怎么通过phpmyadmin导入?
  • 【教程】版本控制系统SVN怎么清除用户信息
  • ORACLE中insert有哪几种类型
  • 热门搜索
    教师节英语手抄报 科技手抄报资料 端午节手抄报简单字少 关于海洋的手抄报 国庆手抄报简单又漂亮 庆国庆手抄报简单漂亮 春节手抄报图片大全简单又漂亮 低碳生活我先行手抄报 清明节手抄报资料 高中英语手抄报