2017-02-09 50 views
-3

讓我們假設我已經創建了一個簡單的遊戲,它使用了幾個函數,而不是多人遊戲。是否可以從瀏覽器中訪問我編寫的函數定義?用戶是否可以訪問我的網頁的JavaScript的函數定義?

另外我們可以說,例如,有一個函數具有score參數,並在用戶的分數達到一定數量時向用戶發送「you win」消息。是否有可能通過控制檯使用用戶指定的參數來調用該函數?

如果上述任何一種可能,那我該如何嘗試?

+0

你試過

  • 谷歌的JavaScript安全性的方法? –

  • +0

    @布萊恩我會,但我不知道如何。 – VlassisFo

    +2

    是的,這是可能的 –

    回答

    2

    是否可以從瀏覽器中訪問我編寫的函數定義?

    是的。

    比方說,有一個功能有一個評分參數,如果他的分數達到一定數量,就會向用戶發送一個「你贏」的信息。是否有可能通過控制檯使用用戶指定的參數來調用該函數?

    是的。

    如果上述任何一種可能,那麼我該如何嘗試它們?

    如果函數是全局函數,只需鍵入它的名稱即可。

    如果它不是全局的,那麼在有權訪問該函數的作用域中的某個地方設置一個斷點,並執行所需的任何操作來觸發該斷點,然後如上所述。

    相關:Prevent Cheating on Javascript GameWhat good ways are there to prevent cheating in JavaScript multiplayer games?

    +0

    謝謝你的回答和參考資料,它們會非常有幫助。 – VlassisFo

    0

    是的,這是可能的。 問題是,你是如何編寫代碼的。

    如果你寫的是這樣的:

    (function(module, window, document, undefined){ 
        module.public = function(){ 
         //code here 
        } 
        function private(){ 
         //code here 
        } 
    }((window.play = {}), window, document); 
    

    您可以(window.)play.public();窗口訪問比分功能。沒有必要。 private功能無法在現場訪問module function

    如果你的代碼,喜歡你的:

    function public(){ 
        //code here 
    } 
    function private(){ 
        //code here 
    } 
    

    兩種功能availalbe與public(); private();

    如何訪問代碼:

    1. 打開瀏覽器的開發者工具。
    2. 打開選項卡「源」
    3. 導航到腳本
    4. 查找所有編寫的代碼
    5. 設置斷點修改數據,當函數被調用
    6. ...

    如何保護您的代碼:

    • 可以醜化/運行如下代碼https://jscompress.com/
    • 使用功能的後端(對於一個小遊戲是這樣制服)
    相關問題