zoukankan      html  css  js  c++  java
  • 多系统间接口的问题

    在系统实施的过程中,经常遇到与别的系统做接口的情况。如果业务比较简单,就是发送消息等那比较好解决,但如果是数据库操作就比较麻烦,因涉及到多个数据库之间的安全问题。

    比如A系统中需要修改B系统的数据库中的数据,就这种情况有很多种的解决方案。比如
    1、A系统在了解B系统的数据库结构的前提下,在A系统的权限管理中直接设置操作B系统数据库的权限。
          这种方式从安全的角度来说应该是比较高的,但是带来很多的问题,特别系统的健壮性比较差,当B系统的数据库结构更改时,直接影响到A系统的系统接口和权限管理部分。  何况,还需要去熟悉别的数据库结构。
    2、B系统提供接口,供A系统调用。这种方式的好外是两个系统之间的耦合度降低,系统方便维护和扩展,但是带来的问题是:当A系统调用B系统时,如何保存A系统调用时的安全?  比如B系统接口中有一个这样的方法 bool InsertData(...) ,用于向数据库中插入一条记录,这样在A系统中可以直接调用这个方法。但是问题是 A系统通过什么方式登录B系统的数据库?B系统如何验证A系统合法性?是不是其它的系统也能随意使用这个接口,操作数据库中的数据?

    那问题怎么解决呢? 

    第一种方案基本上不考虑,在第二种方案中我想了加一个验证来解决。
       B系统中提供一个调用验证,使用不对称加密的方式,B系统中存储公钥,A系统在执行B系统的验证时,提供一个私钥,与B系统的公钥验证,如果验证通过,则B系统初始化数据库,供A调用相关方法,否则,在A调用方法时,给出验证不通过的提示。

    这是刚刚想到的办法,可能不是很成熟,不知道哪位有没有更理想的方法?


       

       

  • 相关阅读:
    CPP STL学习笔记
    CPP 设计模式学习
    blackarch 安装指南
    通过 Http 请求获取 GitHub 文件内容
    实践
    升级
    部署-MySql 之Linux篇
    数据库
    RxJs
    Vue
  • 原文地址:https://www.cnblogs.com/wljcan/p/9203.html
Copyright © 2011-2022 走看看