我一直都在考虑这个问题,并且总是采用更简单的解决方案,即在服务器上执行此操作。但是,我决定我可以询问更多人,也许其中一位开明者可以帮助我提供可靠的解决方案。
问题:您正在开发一个为许多用户提供服务的 Web 应用程序。您提供的部分功能涉及调用外部 API。该调用是为每个用户完成的。可以通过您的服务器或浏览器的 JavaScript 进行调用。在任何一种情况下,您都将处理来自服务器数据库中的 API 调用的数据的结果持久化。我想将 API 调用和处理结果卸载到浏览器的 JavaScript 中,完成后它将回调服务器并保留数据。我看到这种方法的问题是任何人都可以修改 JavaScript 的行为(thnx 到 firebug 及其类似行为是多么容易)以在服务器上持久保存恶意/不正确的数据。
我——服务器——如何相信来自 JavaScript 的数据——按照前面的场景——是正确的并且没有被改变?
最佳答案
简单的回答是你不能,JavaScript 是管道中最不安全的机制 - 最容易操纵。如果您希望它安全,您应该永远依赖 JavaScript。
从更一般的意义上考虑:您只能保护您至少在一定程度上控制的环境...您没有控制浏览器、JavaScript 引擎或操作它的用户.
始终在服务器端验证,始终,始终,始终。
关于javascript - 服务器和浏览器之间的可信通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4386125/