如何通过按浏览器F12保护客户端代码(javascript / jquery)免受调试/编辑

时间:2015-06-04 06:28:39

标签: jquery asp.net ajax code-access-security

如果我在我的asp.net应用程序中使用Ajax调用方法提交一些值,我如何通过浏览器保护客户端编辑这些值?

请建议。

2 个答案:

答案 0 :(得分:0)

无法100%保护客户端不会更改值。

你应该做一件简单的事情,它叫做混淆,这意味着,让你的生产公共代码(客户端js)很难理解。

检查this

答案 1 :(得分:0)

我不确定我是否正确地解释了这个问题,但是这里有:

如果您希望保护变量的值不被控制台等编辑或查看,您应该查看IIFE(立即调用的函数表达式)的范围。

来自Greg franko's blog

  

由于我们的IIFE中的匿名函数是一个函数表达式而没有被赋值给全局变量,因此没有创建全局属性,并且在函数表达式内创建的所有属性都本地作用于表达式本身。

这样,您在此函数中声明和设置的任何变量都无法通过控制台工作的窗口对象进行访问。 Ben Alman创造了这个词,所以如果你正在进一步研究这个话题,请谷歌。

如果你想保护代码中硬编码的变量(例如登录外部服务的信息?)我认为你可以通过从JS文件中删除它们来保护它们,而是通过你的ajax请求这些值服务器。这样做并从IIFE内部存储所请求的值将同样保护它们。

您应该问自己的一个问题:"我是否真的需要向客户发送我不希望客户看到的信息?"。这样做完全违反直觉。

例如,在需要第三方服务凭据的情况下:向您自己的服务器发送请求,让您的服务器处理对第三方服务器的请求(保留凭据服务器端而不是客户端)然后将第三方服务器的结果返回给您的客户端。这会创建一个安全的中间人,其中包含敏感信息,只有访问您网站的任何人都无法访问,但会产生性能成本。