跨站点登录和重定向

本文关键字:重定向 登录 站点 | 更新日期: 2023-09-27 18:25:26

我们制作了一个asp.net mvc应用程序,它有一个附属程序。

我们的附属公司希望有可能让他们的客户,可能使用后台代码(而不是表单)登录我们的应用程序。

登录后,用户应该被重定向到我们自己的一个URL。

首先,我们需要一些帮助和如何做到这一点的例子。

其次,如果这确实是可能的,允许这实际上是一个跨站点脚本,对吗?那么它会让我们面临攻击吗?

如有任何帮助,我们将不胜感激。

跨站点登录和重定向

一个简单的链接无法安全地做到这一点,重定向的唯一方法是使用GET,并且您永远不想以这种方式传递可重复使用的登录信息

这是你的一个选择。。。提供功能类似于web服务的面向外部的控制器。至少包括以下两项操作。一个是从你的网站请求一个新帐户,传递任何必要的信息,另一个是作为"远程登录"这两个操作都应该只接受POST并要求HTTPS。在内部,他们不应该接受任何通过查询字符串的数据传输,查看POST对象(这是加密的,因此更安全)。

"远程登录"操作应采用您的附属机构传递的用户名和密码(在POST对象中加密),并验证其有效性。然后它应该生成一个新的随机值,一个好的方法是使用GUID,并返回它。然后分支将它们重定向到您的网站,在查询字符串中传递GUID。GUID用作他们的一次性登录令牌(他们下次登录时需要一个新的GUID)。

如果他们不需要一个特定的帐户来在你的网站上做事情,那么你可以省略"创建帐户",只需给你的会员一个代码,他们会发送远程登录功能来确认是他们要求登录。

对于实际的远程登录,你的分支机构必须做的是(你可以把这段代码放在一块里,然后说"把它放在你的页面上,它就会起作用。")对你的网站进行AJAX调用,请求一次性登录的GUID。当它收到所述GUID时,它将重定向到您的网站。

这不是最好的选择。。。当双方共同努力确保事物的安全和用户看不见时,类似单点登录的行为是最好的,但它是可行的,并且相当安全。