2011-04-27 52 views
0

我们有一个SaaS网络应用程序,正在寻求从我们的用户那里获得一些反馈。我被要求在其中放置一个按钮,该按钮将重定向到服务器外部网站上的反馈页面。从网络应用程序安全地将ID传递到外部网站

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

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

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

我要补充一点,这两个网站都写在.NET

回答

2

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

阅读这篇文章,它概述的方式,你可以使用安全地从一个Web应用程序传递到另一个标记。它使用散列函数和密钥来保证真实性。

想法是两个网站共享一个密钥。我们称之为$键。网站A使用$ key创建用户标识的哈希表示来对其进行限制。例如:

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

的网站,然后创建一个查询字符串,它追加到网页B的URL查询字符串这可能看起来像:

?id=$id&signature=$signature 

在到达网站B,网站B将验证真伪通过用上面概述的$ key对传入的id进行重新哈希来确定id。如果它等于$签名,那么请求是有效的。否则,请求被忽略。

+0

嘿谢谢,这就是我一直在寻找的。很好的阅读 – Curtis 2011-04-27 22:25:58