作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要向我的服务器发送 ajax POST 请求。
我需要确保请求源自脚本本身,而不是来自用户自己编写的请求。有什么安全的方法可以做到这一点吗?脚本能否对 POST 请求进行签名或编码,然后由服务器的私钥解密?我可以以某种方式阻止用户使用我的公钥进行加密吗?
我这样做不仅仅是为了过滤目的 - 所以普通的旧服务器端验证是行不通的。
最佳答案
您在 Javascript 中所做的任何事情都可以被查看和分析,因为它发生在客户端。因此,在客户端安全地加密信息几乎是不可能的。这使得服务器成为您可以并且需要进行验证的唯一点。
此外,为什么您要关心输入是否来自您的脚本或由用户手工制作?如果输入有效且符合您的规则的定义,则不会产生任何影响。
<小时/>对于这种情况,当有疑问时,您需要看到客户端/服务器分离的重要性。您的服务器就是您的应用程序,它是您需要照顾的唯一关键组件。每个输入通常都是不可信的,每个输出都必须正是您打算披露的内容。
您交给用户的 HTML/JS 界面只是帮助人们与您的服务器进行通信,但这并不意味着它在离开您的服务器后是值得信赖或安全的。
关于javascript - 在 JavaScript 中使用公钥/私钥,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2309221/
我是一名优秀的程序员,十分优秀!