摘要:● 数据库应用系统通常会提供开发接口的安全性若出于安全性考虑,对于只读数据通常提供以供外部程序访问;对于需要更新的数据,则以的方式供外部调用并由提供者完成对系统中多个表的数据更新。
● 数据库应用系统通常会提供开发接口的安全性若出于安全性考虑,对于只读数据通瑺提供()以供外部程序访问;对于需要更新的数据,则以()的方式供外部调用并由提供者完成对系统中多个表的数据更新。
试题来源:2011年上半年数据库系统工程师考试试题
接口的安全性的安全性主要围绕Token、Timestamp和Sign三个机制展开设计保证接口的安全性的数据不会被篡改和重复调用,下面具体来看:
Token授权机制:用户使用用户名密码登录后服务器給客户端返回一个Token(通常是UUID
时间戳超时机制:用户每次请求都带上当前时间的时间戳timestamp服务端接收到timestamp后跟当前时间进行比对,如果时间差大于一定时间(比如5分钟
拒绝重复调用(非必须):客户端第一次访问时,将签名sign存放到缓存服务器中超时时间设定为跟时间戳的超时时间一致,
1、客户端通过用户名密码登录服务器并获取Token
2、客户端生成时间戳timestamp,并将timestamp作为其中一个参数
3、客戶端将所有的参数包括Token和timestamp按照自己的算法进行排序加密得到签名sign
在以上三中机制的保护下
如果有囚劫持了请求,并对请求中的参数进行了修改签名就无法通过;
如果有人使用已经劫持的URL进行DOS攻击,服务器则会因为缓存服务器中已经存在签名或时间戳超时而拒绝服务所以DOS攻击也是不可能的;
如果签名算法和用户名密码都暴露了,那齐天大圣来了估计也不好使吧。。
最后说一句所有的安全措施都用上的话有时候难免太过复杂,在实际项目中需要根据自身情况作出裁剪比如可以只使用签名机制僦可以保证信息不会被篡改,或者定向提供服务的时候只用Token机制就可以了如何裁剪,全看项目实际情况和对接口的安全性安全性的要求~
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。