我的客户有一个内部网门户,并希望在其中有一个按钮,这样当点击它时,它会打开我的网站,并在客户内部网中登录用户自动进入我的网站。
用户,在内部网和我的网站,有相同的用户ID(用户ID基本上是电子邮件)。
我们确实有IP认证,所以我的站点已经知道内部网站点来自哪里的IP,所以它授权它。未授权的ip被重定向以将其踢出。
我的客户如何以安全的方式将用户ID(在我的例子中是电子邮件)从他的内部网传递到我的网站?
以下是我对安全的担忧:A)如果用户ID作为参数传递给我的网站(例如,作为url中的查询字符串的一部分或作为POST调用中表单中的隐藏输入字段),那么内部网中的任何人都有可能通过其他人的用户ID更改此用户ID并以他们的身份输入。例如,如果我是joe@abc.com,那么joe@abc.com将以参数的形式从内部网传递到站点。我可以很容易地将joe@abc.com更改为dave@abc.com,然后将我登录为dave@abc.com。
B)假设用户ID随后被加密。现在joe@abc.com变成了类似AAABBB000111的东西。如果我与任何人共享这个加密的值,那么这个人就可以使用加密的值并以我的身份登录。当然,我必须与他共享这个加密的值。
那么,您认为是否有一种好的、优雅的方法可以安全地将用户ID从内部网传递到外部站点?
查询字符串可以很容易地用于传递此信息,但如果它是安全的,我不会这样做。你可以在cookie中传递它,这将非常简单,如果这不是一个选项,因为数据是敏感的,你可以查看sessionStorage在页面之间临时存储数据。
将其发送到服务器听起来最好的办法是将它们记录在cookie中保存会话然后重定向。