如何在URL中散列或加密用户ID

时间:2016-11-01 14:30:48

标签: html http url encryption

我正在开发一个应用程序,我需要在某些时候加密我在URL中发送的用户凭据,只要它现在只是一个纯文本,根本不安全。

我需要加密的代码示例如下:

<a type="button" href="http://<%= host %>/play?user=<%= users.id %>" class="btn btn-primary">Create new scene</a>

我发现了encodeURIComponent(str);功能,还有sessions是另一种可能性吗?但我真的不确定如何将这个实现到我的代码中。提前谢谢。

1 个答案:

答案 0 :(得分:0)

基本上,您应该执行两个步骤:

  1. 您应该使用服务器生成的令牌而不是凭据 秘密,例如<userId, timestamp, hmac(userId + timestamp + secret)>响应用户的身份验证(例如OAuth,HTTP Basic或自定义API)。这允许授权而不发送可由攻击者读取的密码。这个方案的可靠实现是JSON Web Tokens,可以在许多编程语言中使用。
  2. 如果您在URL中使用令牌,请注意,如果用户复制并共享链接,则将委派访问权限。因此,使用时间戳的到期时间不应太高。为了避免这个问题,您也可以使用cookie。在这种情况下,您的服务器会回复set-cookie: token,浏览器会自动将每个请求中的Cookie附加到同一个域。
  3. 请务必使用SSL,因此中间人无法嗅探凭据或令牌。