2012-09-29 43 views
2

我意识到我们可以在浏览器中通过检查元素>来源等查看JS代码。例如,我有以下代码,它可以在“source”下查看。我们是否真的需要隐藏js(jquery)代码?

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

这是不安全的,还是它甚至重要?

+0

您是否担心用户在服务器上找到位置并导航到它们? – SomeKittens

+0

possbile重复http://stackoverflow.com/questions/1628799/hide-javascript-jquery-scripts-from-html-page – gtgaxiola

+0

谢谢大家。所有这些都是答案,我只需选择一个。 – vzhen

回答

3

不,这不是不安全的,因为您的location/insert_user_location URI在服务器端正确安全,对不对?出于同样的原因,您不应该相信客户端表单验证,并始终在服务器端执行相同的验证。

没有办法“hide”客户端的JavaScript。无论它隐藏得多深,混淆程度如何,黑客总是能够分析它。

3

我不明白为什么这可能是不安全的,但您必须始终记住,从客户端发送或计算出来的每件事物都可能不安全,并且您可能不相信这些数据而未验证它是有效......从来没有。

3

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

3

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

这意味着你不应该信任任何可能通过Ajax发送给服务器的信息。

1

在这种情况下,客户端验证是您的朋友。我不会太担心你的客户端代码 - 将它视为暴露给每个人来抓。跨站点脚本编写将是一个问题,除此之外,您的努力将变得更加严谨和代码库安全性。