将安全ID从Web应用程序安全地传递到外部站点

时间:2011-04-27 22:10:26

标签: asp.net security

我们有一个SaaS网络应用程序,并希望从我们的用户那里获得一些反馈。我被要求在其中放置一个按钮,该按钮将重定向到该服务所在站点外部的反馈页面。

我只是在查询字符串中包含客户端的ID,但我知道这不是最佳选择。我真的不希望用户能够更改此字符串的值,从而提供较差的数据。

我无法将反馈页面作为相关网络应用的一部分。我们希望将记录存储在一个单独的数据库中,我们已经保存了大量的报告信息。

这不是什么大问题,我知道查询字符串方法很简单,但只是寻找一些替代方案。

我应该补充说两个网站都是用.net

编写的

1 个答案:

答案 0 :(得分:2)

http://dotnetslackers.com/articles/aspnet/Securely-Passing-Identity-Tokens-Between-Websites.aspx

阅读本文,它概述了一种可用于将令牌从一个Web应用程序安全地传递到另一个Web应用程序的方法。它使用散列函数和密钥来保证真实性。

这个想法是两个网站共享一个密钥。我们称之为$ key。网站A使用$ key创建用户ID的哈希表示形式。例如:

$signature = md5($key + $id);

网站A然后创建一个查询字符串,它附加到网站B的URL。该查询字符串可能如下所示:

?id=$id&signature=$signature

到达网站B后,网站B将通过重新散列上面列出的$ key传入的ID来验证身份的真实性。如果它等于$ signature,则请求有效。否则请求将被忽略。