通过PHP在服务器端保留登录凭据(安全可靠)
因此,我试图编写一个php SOAP客户端,它要求用户向远程SOAP服务器传递登录凭据。以下是设置/困境:通过PHP在服务器端保留登录凭据(安全可靠),php,security,session,soap,Php,Security,Session,Soap,因此,我试图编写一个php SOAP客户端,它要求用户向远程SOAP服务器传递登录凭据。以下是设置/困境: 用户使用本地凭据登录到本地站点,并使用SOAP客户端进入页面 现在会提示用户输入远程Soap服务器的凭据,顺便说一下,这些凭据与通过POST表单进入本地站点(10次中有9次)的凭据相同 客户端在SOAP头中传递凭据和SOAP请求,客户端输出SOAP服务器响应 脚本结束时,用户将看到输出数据 现在,用户需要一些与原始输出相关的其他数据位。问题是,$\u POST变量现在早已不存在了。用户
- 用户使用本地凭据登录到本地站点,并使用SOAP客户端进入页面
- 现在会提示用户输入远程Soap服务器的凭据,顺便说一下,这些凭据与通过POST表单进入本地站点(10次中有9次)的凭据相同
- 客户端在SOAP头中传递凭据和SOAP请求,客户端输出SOAP服务器响应
- 脚本结束时,用户将看到输出数据
甚至连一个指向任何基本安全功能的链接都会是一个有用的开始。为什么不自己设置一个cookie,在第一个soap请求之后,cookie中包含用户名/密码?你只要问一次,然后把它储存在饼干里。然后,您可以设置超时并在用户登录时查询它。您可能希望在注销时删除cookie
cookie将只包含soap用户/密码。这样,您就不必担心有人戳服务器并找到其他凭据。这实际上与用户每次输入它是一样的,因为它是以明文形式发送的。您可以使用可逆哈希或简单的双向加密来混淆cookie中的用户名和密码 您为什么不自己设置一个cookie,在第一个soap请求之后,该cookie中包含用户名/密码?你只要问一次,然后把它储存在饼干里。然后,您可以设置超时并在用户登录时查询它。您可能希望在注销时删除cookie
cookie将只包含soap用户/密码。这样,您就不必担心有人戳服务器并找到其他凭据。这实际上与用户每次输入它是一样的,因为它是以明文形式发送的。您可以使用可逆哈希或简单的双向加密来混淆cookie中的用户名和密码 创建自己的过期会话。创建一个数据库表,它是:
CREATE TABLE session (
ID int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
Hash binary(16) NOT NULL,
User int unsigned NOT NULL,
Created timestamp
);
当用户第一次进行身份验证时,创建会话并返回哈希的十六进制形式
后续调用不需要用户名和密码,只需要散列。比方说,在5分钟的不活动之后,散列被删除。用户名和密码只传递一次,散列随后用作身份验证,并在一段时间不使用后过期。创建自己的过期会话。创建一个数据库表,它是:
CREATE TABLE session (
ID int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
Hash binary(16) NOT NULL,
User int unsigned NOT NULL,
Created timestamp
);
当用户第一次进行身份验证时,创建会话并返回哈希的十六进制形式
后续调用不需要用户名和密码,只需要散列。比方说,在5分钟的不活动之后,散列被删除。用户名和密码只传递一次,散列随后用作身份验证,并在一段时间不使用后过期。我实际上是在阅读php会话安全性:我主要关心的是,对于相当多的其他敏感数据,密码是相同的,我需要确保没有人能够解码cookie或拦截会话。即使我极有可能使用某种密码并反转密码并阻止任何访问解密方法的http方式,仍然会有代码,如果有人访问服务器,绘制获取密码的路线图。快速跟进:如果有人知道……是否可以通过会话变量使SOAP客户端保持活动状态,以便只有客户端对象具有密码?我知道这并不是更好,但它可能比将密码保存在指定的会话变量中要好。实际上,我正在阅读php会话安全性:我主要关心的是,对于相当多的其他敏感数据,密码是相同的,我需要确保没有人能够解码cookie或拦截会话。即使我极有可能使用某种密码,并反转密码和密码