对JSON和Javascript的安全性非常困惑(并且担心)

对JSON和Javascript的安全性非常困惑(并且担心),javascript,json,security,Javascript,Json,Security,我已经尝试对此主题做了一些研究,甚至引用了以下堆栈溢出线程: 但我的基本问题是这个 当我构建我的web应用程序时,我会使用诸如Fiddler、Chrome Developer工具、Firebug等工具。我会动态地更改内容以进行测试。我甚至可以使用fiddler来更改发送到服务器的数据 是什么阻止其他人打开我的网页也这么做?如果用户只需点击F12并打开Chrome开发者工具,然后更改通过网络发送的数据,那么世界上所有的jQuery验证都是无用的,对吗 我在这个领域还是比较新的,这让我非常担心,

我已经尝试对此主题做了一些研究,甚至引用了以下堆栈溢出线程:

但我的基本问题是这个

当我构建我的web应用程序时,我会使用诸如Fiddler、Chrome Developer工具、Firebug等工具。我会动态地更改内容以进行测试。我甚至可以使用fiddler来更改发送到服务器的数据

是什么阻止其他人打开我的网页也这么做?如果用户只需点击F12并打开Chrome开发者工具,然后更改通过网络发送的数据,那么世界上所有的jQuery验证都是无用的,对吗


我在这个领域还是比较新的,这让我非常担心,因为我看到“开放”协议变得越来越普遍。我还不了解SSL(这在我开始研究的事情清单上),所以也许这就是答案,我只是还没有深入挖掘。但是,我对页面操作的灵活性似乎非常极端,这让我非常担心恶意用户会做什么。

你的担心确实是有道理的。这就是为什么您应该始终验证服务器上的所有内容。客户端验证只应用于用户体验。

是的,没有任何东西可以阻止任何人干扰从浏览器发送到服务器的数据,这就是您不应该信任它的原因
始终检查用户提供的数据的真实性和有效性


此外,通过它,您可以检查并干扰谷歌和微软等大型网站发回的数据,您可能会有一个想法。

简单地说,JavaScript的安全性基于一个可信的服务器。如果您始终相信服务器发送给您的代码,那么它应该是安全的。第三方(如广告供应商)不可能从其包含的域中获取数据

如果服务器还向您发送用户生成的内容,特别是用户生成的代码,那么您就有潜在的安全问题。这就是XSS攻击的重点(在可信环境中运行恶意脚本)


客户端验证应关注易用性,使其易于纠正错误或指导用户,从而避免出错。服务器应该始终执行验证,但验证的性质更严格。

您必须假设客户端是恶意的——使用SSL根本无法防止这种情况。所有数据验证和授权检查都需要在服务器端完成。

验证应始终在服务器端进行,客户端验证只有在为用户提供更方便的体验时才有价值。您永远不能相信用户不会在其端操作数据。(Javascript是客户端)


接下来,如果您希望保护您的服务,以便只有user1可以编辑user1的配置文件,那么您需要使用OAuth(或类似协议)对JSON请求进行签名。

Javascript并不是您抵御黑客的唯一防线,事实上,它根本不应该用于安全。客户端代码可用于验证表单输入,这样尝试使用页面的用户可以有更快的响应时间,页面运行良好。任何试图入侵你的页面的人都不会在意你的页面是否正常。不管怎样,进入服务器的所有内容都应该经过验证,永远不要被认为是安全的。

您甚至不需要劫持页面,我可以在linux上打开一个命令行,向您的服务器提交任何内容。需要在服务器上进行验证。