• 多系统间接口的问题


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

    比如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调用方法时,给出验证不通过的提示。

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


       

       

  • 相关阅读:
    Ubuntu18.04, WPS表格生成中文大写数字的script
    Java实现的简单神经网络(基于Sigmoid激活函数)
    Naive Bayes Classifier 朴素贝叶斯分类器
    动态规划处理diff算法 Myers Diff (正向)
    动态规划处理01背包问题
    文本diff算法Patience Diff
    API返回错误信息的最佳实践
    CAP理论中, P(partition tolerance, 分区容错性)的合理解释
    mysql: SELECT ... FOR UPDATE 对SELECT语句的阻塞实验
    Probability&Statistics 概率论与数理统计(1)
  • 原文地址:https://www.cnblogs.com/wljcan/p/9203.html
Copyright © 2020-2023  润新知