2

我意识到我们可以通过Inspect element > source等在浏览器中查看 JS 代码。例如,我有以下代码,可以在“源”下查看。

$.ajax({
    url: baseUrl + 'location/insert_user_location',
    type: "post",
    data: {address:address,lat:lat,lng:lng,acc:acc},
}).done(function(){
    getUserLocation();
});

这是不安全的,还是有关系?

4

5 回答 5

3

我不明白为什么这可能是不安全的,但您必须始终牢记,从客户端发送或在客户端计算的所有内容都可能是不安全的,并且您可能不信任这些数据而不验证它是否有效......绝不。

于 2012-09-29T17:11:15.350 回答
3

不确定您可以做些什么来隐藏 Javascript。即使您在传输过程中“加密”或以某种方式模糊了它,最终也必须清楚地让 javascript 解释器使用它,这几乎肯定总是可以被某种开发人员或其他工具看到。如果它的敏感数据,如果它是一个重要问题,我会避免将它放入代码中。

于 2012-09-29T17:11:31.417 回答
3

不,这不是不安全的,因为您的location/insert_user_locationURI 在服务器端得到了正确保护,对吗?出于同样的原因,您不应该信任客户端表单验证,并且始终在服务器端执行相同的验证。

没有办法在客户端“隐藏”JavaScript。不管它隐藏得多么深,被混淆得多么好,黑客总是能够分析它。

于 2012-09-29T17:12:23.313 回答
3

vzhen,如果你在浏览器中返回给用户,任何人都可以看到你的 JavaScript 代码。只要您不输入私人信息(例如用户密码或 javascript 中的 API 密钥)并且从不信任客户端,这确实没有任何安全问题。

这意味着您不应该信任任何可能通过 Ajax 发送到服务器的内容。

于 2012-09-29T17:12:23.270 回答
1

在这种情况下,客户端验证是您的朋友。我不会太担心您的客户端代码 - 将其视为公开供所有人获取。跨站点脚本将是一个问题,除了将您的精力放在服务器和代码库安全性上。

于 2012-09-29T17:17:09.713 回答