javascript - 从 javascript 发送用于身份验证的共享 key

标签 javascript authentication encryption

所以我有一个页面使用 html 页面中输入字段的 ajax 发布 json 数据。

ajax 发送到不同的服务器,服务器当前检查授权 header ,并将其与共享 key 进行比较,如果 key 匹配则执行 json 请求(请求通过 https 完成)。

我担心的是任何人都可以打开源代码并查看共享 key ,这意味着任何人都可以向我的服务器发送经过身份验证的请求(不好)。

然后我考虑改为加密 key ,但这又让我又遇到了第一个问题。

我无法从生成 html 页面的同一台服务器(在服务器端)执行 json 请求,因为它太慢了。我可以控制发送的内容,但不能控制发送的时间。

我正在使用 ajax 调用,因为我需要立即获取数据。

我如何创建一个恶意用户无法伪造的 token ,这样我就可以相信 json 请求来 self 期望它来自的服务器/页面?

最佳答案

在评论之后我更好地理解了你的用例:服务器 A 将响应一个 html 表单,在用户完成它之后,它会被提交给服务器 B。你如何确保发送到 B 的表单确实到来了来自 html 表单,而不是来自其他地方?

短期 token 而不是唯一 key 会更好,但是使用 nokogiri 或 jsdom 之类的东西,任何人都可以轻松解析您的表单并发出自动请求。

我认为像 Google reCAPTCHA 这样的验证码机制是你要找的。浏览器中的页面将使用公钥向验证码服务器请求验证码,用户必须从图像中输入这些字母,在他提交表单后,服务器 B 将使用密码验证该值。

关于javascript - 从 javascript 发送用于身份验证的共享 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21158082/

相关文章:

objective-c - iOS 5:如何加密 bundle 中的属性列表?

javascript - 将 ajax 错误和成功函数替换为传递给父函数的替代函数

javascript - 如何在单页应用程序中处理分页?

ios - 在 iOS 应用程序的整个 Web View 中保留登录凭据(快速)

google-app-engine - 谷歌应用引擎身份验证

php - 用户/管理员通过 PHP 登录

php - 在服务器上安装 SSL 证书时,是否需要更改 PHP 表单提交和 MySQL 内部代码?

javascript - 单击文本框文本,弹出菜单应与文本框一起打开

javascript - 分页和字母过滤器问题

c# - C# 和 Java 中 Triple DES 的实现有什么区别吗? Java 给出错误 IV 大小错误