2011-02-23 38 views
4

我们正在创建一个Silverlight应用程序,并且需要有几个参数来自调用网站的URL。我应该加密一个由URL参数传递的GUID吗?

例如:http://oursite.com/index.aspx?test=d53ae99b-06a0-4ba7-81ed-4556adc532b2

我们想给链接回到我们的桌子的GUID告诉Silverlight应用程序它的任务是什么,当他们到达主叫网站“测试”字符串。除此之外,我们还使用此GUID进行身份验证。

的GUID是这样:

  1. d53ae99b-06a0-4ba7-81ed-4556adc532b2
  2. 8354b838-99b3-4b4c-bb07-7cf68620072e

加密,值是长得多的:

  1. l5GyhPWSBUw8KdD + TpWJOsoOFDF0LzmGzd4uufLx + v/d3eByGZ6zPcRjvCRMG2tg
  2. WVMN7B0FPa18/Q7 + U4njb5AOKnx6Ga9xoAsvCET6MyjM5TV6dO86OexaCXDiXaES

我的问题是,考虑到安全性,我们应该给他们加密的GUID或喜欢它,未加密的?

重要吗?

大家对这种参数传递的经验是什么?

+0

我的问题是:你的加密值为什么这么长?我并不认为他们需要增加规模 - 你在这里做错了什么。 – 2011-08-13 01:00:31

回答

6

在加密问题上,关键是定义您的安全上下文。如果他们有权访问原始GUID,可能有人能做些什么?如果他们不能做任何危险的事情,那么加密没有意义,通常最好不要加密。如果此信息存在任何安全风险,请将其加密。

既然你说:

我们也用这个GUID进行认证,我们的应用程序除其他事项外

...我猜你会想加密。但是您可能需要重新考虑您的身份验证策略。通常使用经过时间考验的,被广泛接受的认证和加密方法是最好的,因为你可以相对确定没有未知的漏洞。

+0

这几乎是我们的思维方式。我们不需要对它进行加密,因为即使他们确实获得了它,对他们也没用。顺便说一句,我们只是使用GUID来查询数据库中的一段时间后过期的状态。感谢您的输入! – ErocM 2011-02-23 17:10:59

+0

我仍然关心查询状态。在任何时候,黑客都可以窃取他人的GUID并切换URL以使用他们的URL。然后应用程序将使用其他人的状态加载。如果您使用该状态来维护任何类型的安全信息,黑客可以提升他们的权限。 – Tony 2011-02-23 19:09:23

+0

请记住,每个请求都需要从“当前认证的用户有权在Guid Y上执行X?”开始。这就是为什么我说你不想使用GUID进行身份验证。正如托尼所说,如果其他人可以窃取Guid并让应用程序认为他们是其他用户,那么您就有安全漏洞。 – StriplingWarrior 2011-02-23 20:34:02

相关问题