繁体   English   中英

在javascript中使用公钥/私钥

[英]using public/private keys in javascript

我需要向我的服务器发送一个ajax POST请求。

我需要确保请求源自脚本本身,而不是来自用户自己编写请求的用户。 有没有安全的方法来做到这一点? 脚本可以对POST请求进行签名或编码,稍后由服务器的私钥解密吗? 我可以以某种方式阻止用户使用我的公钥加密?

我不是仅仅为了过滤目的而这样做 - 所以普通的旧服务器端验证不会这样做。

您在Javascript中所做的任何事情都可以被看到和分析,因为它发生在客户端。 因此,安全地加密客户端信息几乎是不可能的。 这使得服务器成为您可以并且需要进行验证的唯一点。

另外,为什么您会关注输入来自您的脚本还是由用户手工制作? 如果输入有效且允许按照规则定义,则不应有任何区别。


对于这种情况,如果有疑问,您需要了解客户端/服务器分离的重要性。 您的服务器是您的应用程序,它是您需要处理的唯一关键组件。 每个输入通常都是不可信的,每个输出必须完全符合您的要求。

您交给用户的HTML / JS界面只是帮助人们与您的服务器进行通信,但这并不意味着它一旦离开您的服务器就值得信赖或安全。

其他答案是正确的:这根本不可能。 从务实的角度来看,你可以做的最好的事情就是研究一种非常讨厌的方式来混淆你的JavaScript,以阻止那些可能试图看它的人,但你可以放心,有动力的人可以毫不费力地解决这个问题。 。 http://en.wikipedia.org/wiki/Obfuscated_code

我需要确保请求源自脚本本身,而不是来自用户自己编写请求的用户。

从您的服务器的角度来看,“脚本”和“用户”无法区分。 你所要求的根本是不可能的。

您不能在纯JS中使用公钥加密,因为将公开私钥(用于签名数据)。 一般来说,你要做的事情是不可能的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM