2012-09-29 41 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

在這種情況下,客戶端驗證是您的朋友。我不會太擔心你的客戶端代碼 - 將它視爲暴露給每個人來抓。跨站點腳本編寫將是一個問題,除此之外,您的努力將變得更加嚴謹和代碼庫安全性。