【问题标题】:Javascript go to url with encrypted parameterJavascript 使用加密参数转到 url
【发布时间】:2013-12-11 14:41:34
【问题描述】:

我正在创建一个google chrome extension,它看起来就像是我网站的扩展。

当您第一次打开我的扩展程序时,您必须登录。当您输入您的用户名和密码时,将向我的服务器发送一个 ajax 请求。如果用户名和密码的结果为真我encrypt密码并将其存储在扩展中

现在变得棘手了:

如果用户访问我的网站,它应该会自动登录。 我以为我会在我的扩展程序中检查该网站是否是我的,它会重定向到子网址并发送加密的密码/用户名,然后我的网站会自动登录用户

加密密码示例如下所示:ZNVwb7ukhJfhBmdbo4SkPMjG6U8a0GKQB+/mPhQtRVw=

由于/,我想将其作为发布请求发送。

你们知道我将如何实现这一目标吗?

【问题讨论】:

  • 那么实际的问题是什么?如何进行 XHR POST?
  • @Barney 是的,我如何发送它,这是正确的做法吗?还是使用加密密码编码的获取请求更好?

标签: javascript post redirect


【解决方案1】:

不评论您使用的加密,听起来您想避免 GET 请求仅仅是因为 URL 包含 / 字符?

您可以通过 GET 发送此值,您只需 URL encode 值即可。

只能使用 ASCII 字符集通过 Internet 发送 URL。

由于 URL 通常包含 ASCII 集之外的字符,因此必须将 URL 转换为有效的 ASCII 格式。

URL 编码将不安全的 ASCII 字符替换为“%”,后跟两个十六进制数字。 URL 不能包含空格。 URL 编码通常用加号 (+) 或 %20 替换空格。

因此,如果您想发送正斜杠以解释为查询字符串参数而不是路径分隔符,则应将其编码为%2F。最好为此使用标准库并传递整个字符串,而不是自己滚动以仅对斜杠进行编码。

【讨论】:

    【解决方案2】:

    我建议您不要尝试存储加密密码并可能屈服于未来的安全问题,而是使用令牌。所以这个过程是:

    • 用户运行您的扩展程序
    • 扩展程序将用户的登录信息发送到远程服务器(通过 HTTPS)并取回一个令牌
    • 令牌用于所有进一步的请求

    为此,您需要远程服务器上的会话表,该表可以解释每个请求中的令牌以查找发出请求的用户。最佳实践将规定最终令牌应因不活动而变得陈旧,要求用户再次登录。此超时通常在 1-24 小时范围内。

    【讨论】:

      猜你喜欢
      • 2013-11-18
      • 1970-01-01
      • 2015-01-29
      • 1970-01-01
      • 2019-07-04
      • 2012-05-01
      • 2010-10-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多