如何保护javascript变量在发布到服务器时不被操纵



我正在ASP中构建一个简单的mvc应用程序。NET和我希望将会话的所有用户数据保留在客户端,即每次加载页面时,变量都会从零开始重新启动(例如,游戏中的点数(。然后,这些数据将被发送到服务器端(作为邮件(进行处理,然后返回到客户端。我这样做是为了不使用数据库并获得性能。

但是,我如何确保这些数据在发送到服务器之前不会被操纵?对不起,我对这一切有点陌生。

感谢

来自客户端的一切都可以被操作,包括javascript变量、FORM变量等。

始终将来自浏览器的任何内容视为不可信。对于每个HTTP请求,始终检查调用方是否有权访问正在请求的资源。这是所有web应用程序的基本规则。它通常是在过滤器中完成的,所以,它并没有那么糟糕。

您可以在发送到客户端的数据中嵌入HMAC,这样服务器就可以在客户端稍后发送回数据时验证它是否没有更改。但你也必须担心重播攻击之类的事情——即使恶意客户端不能更改数据,它也可以发送几次重新加载前收到的的数据。

您说您试图通过不使用数据库来获得性能优势,但您实际评估过数据库性能并发现它太慢了吗?这听起来像是你在毫无根据的假设基础上为你的应用程序选择了一个奇怪的设计。

你不能,你能做的最好的事情就是在服务器端验证它们,确保它们不包含任何恶意字符,你也可以使用哈希来验证变量没有被手动修改,尽管他们仍然可以更改它。

isn't是在页面返回时保护或保留JavaScript变量值的一种方法。

最新更新