2014-09-24 33 views
1

我們,使一些東西代碼:用戶可以更改javascript關閉功能嗎?

$(function(){ 

    //websocket connection 
    //ajax requests 
    //other stuff 

}); 

如果代碼加載瀏覽器已經編譯,所以可以在用戶更改此代碼,並改變了其代碼重新加載頁面?

因爲這個匿名jquery函數內部的函數不能在瀏覽器控制檯中執行,因此它們不可訪問,問題是:是否有任何方法來破解這種類型的代碼?

+1

用戶可以只複製匿名函數,包括裏面的代碼,他控制檯,並運行它。 – Cerbrus 2014-09-24 11:27:44

+1

使用Chrome的DevTools,用戶*可以確實改變該函數並重新編譯整個腳本。但是對於其他瀏覽器,它們仍然可以更改值等。 – MaxArt 2014-09-24 11:28:13

+0

一個人可以從瀏覽器控制檯運行他想要的任何東西。不只是你的上面的代碼。 :) – mithunsatheesh 2014-09-24 11:29:34

回答

2

用戶可以將匿名函數(包括內部代碼)複製到他的控制檯,然後運行它。
基本上,任何和所有代碼您發送到客戶端可以被訪問,修改和運行。

驗證服務器端需要驗證的任何內容。僅使用客戶端驗證來使您的應用程序「更漂亮」。

1

它可以很容易地複製到谷歌瀏覽器中的控制檯,例如,從那裏更改和解僱。用戶可以在Source選項卡中輕鬆查看該腳本。所以是的,這是可能的。 所以,如果它的功能,用戶不能看到我建議不要在客戶端使用JavaScript或任何腳本語言。

0

我不知道你的問題有什麼特別,但有幾個建議。

  • 不要信任用戶,也不要信任來自客戶端的東西。它可以很容易地操縱。 總是檢查數據服務器端。檢查字段是否是正確的類型,特別是在像PHP這樣的語言中,從不使用整個POST數據,總是對其進行過濾。
  • 縮減大小代碼並使用關閉這樣你減少的變化,用戶可以弄亂你的代碼
  • 只授予該是他的責任的部分訪問用戶,如果他與你的代碼弄亂這樣只有他被損壞了。
  • 如果可以,請使用安全cookie和https。檢查CSRF和XSS,並使用一些方法來保證這一點。

你無法避免,因爲他討好用戶都會做,但你可以讓他只能摸他的數據