Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 子项目站点的通用用户配置文件–;从主服务器安全传输用户数据_Php_Mysql_Security_Server To Server - Fatal编程技术网

Php 子项目站点的通用用户配置文件–;从主服务器安全传输用户数据

Php 子项目站点的通用用户配置文件–;从主服务器安全传输用户数据,php,mysql,security,server-to-server,Php,Mysql,Security,Server To Server,我有一个网站(a)用于用户系统的主要项目(该网站应该为注册用户显示我国所有的学生竞赛和学术活动。该网站还允许用户签署这些活动和其他一些内容。A帐户只包括姓名、学校、电子邮件、兴趣领域等基本信息) 此外,我正在建立一个网站(B)作为“子项目”(用于在主题领域寻找兼职工作和与大型组织合作。此外,未来还会有更多类似的子项目,因此(B)代表一组子网站).B站点需要与A中相同的数据,并需要填写更多的数据。所有子项目将由与主项目相同的人员维护 我认为,允许用户使用A帐户登录B站点会很好,但也可以使用个人帐户

我有一个网站(a)用于用户系统的主要项目(该网站应该为注册用户显示我国所有的学生竞赛和学术活动。该网站还允许用户签署这些活动和其他一些内容。A帐户只包括姓名、学校、电子邮件、兴趣领域等基本信息)

此外,我正在建立一个网站(B)作为“子项目”(用于在主题领域寻找兼职工作和与大型组织合作。此外,未来还会有更多类似的子项目,因此(B)代表一组子网站).B站点需要与A中相同的数据,并需要填写更多的数据。所有子项目将由与主项目相同的人员维护

我认为,允许用户使用A帐户登录B站点会很好,但也可以使用个人帐户注册到B,因为用户通常不必只来自主A站点,可能只对B感兴趣。


两台服务器都在运行PHP和MySQL服务。B站点将不会与A位于同一台服务器上,因此它们显然必须通过Internet进行通信

到目前为止,我计划了以下场景:

  • 用户使用来自A的凭据登录到B
  • B对密码进行哈希运算,并通过安全通道将其与用户名一起发送到A
  • A将用户密码和散列密码与其数据库进行比较,然后返回或发送带有错误的消息
  • B登录用户
  • 但我的主要问题是安全通信部分,我查阅了一些基础知识,比如服务器需要证书才能相互识别,但我还没有找到任何具体的代码

    存储用户数据也有问题,因为B需要能够在公共网站上显示某些字段,我认为在远程数据库上查找这些字段是不必要的。但这会导致将a用户配置文件字段存储在B服务器上,因此无论如何都没有用


    如果您有管理员访问您的服务器,那么您可以设置一个站点到站点的vpn,以确保服务器之间的通信安全

    您还可以在服务器上安装SSL证书,并通过SSL安全通道发送数据


    另一种选择是使用Php对服务器之间发送的消息进行加密。

    是否要求A和B位于不同的服务器上?如果不需要,则会更安全且更易于管理。它们可以是不同的站点,但如果位于同一服务器上,则添加一列org ID将允许您将数据分开,同时也可以将所有数据分开由于您需要进行跨组织查询。您还可以维护每个组织的用户帐户,同时在需要时仍然允许访问其他组织的相关信息。另一种方法是使用远程访问其他数据库。这看起来是最方便的方式,但我不希望B成为a的子域(如B-site.a-site.com)。但是,是否可以这样做,即不需要子域,而且两个站点仍将托管在同一台服务器上?每个站点都可以有自己的域。如何做到这一点取决于您的主机,但如果它们有cPanel,则应该很容易。使用共享托管,访问多个DB非常容易。