2015-02-05 176 views
2

我很擔心javascript安全性,因爲客戶端可以查看和編輯代碼,我知道爲了克服這一點,我們可以使用ajax調用在服務器上運行關鍵進程。但最近我正在解析雲代碼,它的一部分運行在服務器上。我想知道這是否是JavaScript安全問題的答案,它是否安全?javascript客戶端安全

+4

凡是需要用戶保護必須在服務器上,而不是客戶端上完成的。 – Barmar 2015-02-05 19:18:55

+0

我在我的問題中已經提到過這個問題。 – 2015-02-06 05:16:22

回答

4

是Parse.com服務器端Javascript安全嗎?

服務器端JavaScript是相對安全。對於Parse.com(我對他們的系統不太熟悉),它似乎接受客戶端數據。 客戶端數據始終不安全。這就是說,你可以使安全的解析它(雙關語意圖),以確保在運行它之前剝去潛在的危險。

這個系統的安全性取決於你編寫代碼的程度。

服務器端Javascript是否安全?

與上述相關的是,服務器端JavaScript可以是安全的,只要它是以安全的方式編寫的。 IE中,只有數據被傳遞,任何需要安全的數據都會保留在服務器上,並且只能由服務器更新。

例如,如果您要更新遊戲得分(取自某些parse.com示例),而不是向服務器發送要更新的分數,請將觸發分數更新的操作發送給服務器,並讓服務器解析操作並添加到分數。這是安全的。發送評分本身不是,因爲評分可以由客戶操縱。

是Parse.com客戶端Javascript安全嗎?

絕對不是。客戶端掌握在敵人手中 - 永遠不會有相信客戶端不會操縱他們的數據和/或生成它的代碼。

開發人員有責任確保您的數據僅由客戶端無法處理的系統處理和處理。

那麼,parse.com是否安全?

迴應我已經說過的一切,parse.com是一樣安全,因爲你使它。它僅取決於您設計應用程序的程度。

服務器端Javascript是安全問題的答案嗎?

服務器端任何東西都是固有地然後客戶端更安全。 這是一個解決所有安全問題的一站式解決方案嗎?編號錯誤編碼(IE:SQL注入)甚至開放端口(IE:通過Web服務器的電子郵件轉發)仍然存在很多危險。因此,這種方法有兩個方面,確保服務器和保護代碼。這些通常分爲適當技能的人員(例如,開發人員不應被要求關閉服務器上的端口,例如,除非沒有其他人這樣做,並且您已經用完了受過訓練的猴子的香蕉)。

但是,並非所有的東西都可以在服務器上運行。例如,捕獲客戶端輸入和繪製元素到屏幕上是客戶端必須接受的兩件事情。 這就是你決定系統需求的地方。

就拿上面的例子中關於通過行動而不是得分數量張貼分數到服務器,它是固有更安全,然後發送了比分,但它仍然是不完全發送因爲玩家的操作時的安全很容易欺騙系統發送重複的動作。

你可以開發一些邏輯來判斷動作是否允許,或者有些甚至更瘋狂的邏輯來決定一個玩家的動作率是否爲人類,但是你可能永遠不會讓任何人將他們的得分報告給服務器,將會是最安全的,也會導致一場不太好玩的比賽。

決定什麼樣的領域可以或不可以保護,以及它對應用程序有什麼方面(或者遊戲 - 我使用遊戲,因爲parse.com的示例使用了遊戲)總是有風險的。

進一步計算器相關閱讀

這裏有一些很好的說明有關JavaScript注入的特定漏洞: Javascript security risks?

這一個能直接打動客戶端/服務器端驗證: JavaScript: client-side vs. server-side validation

這裏有一些關於「如何」縮小和混淆代碼的註釋: How can I obfuscate (protect) JavaScript?

關於在Javascript混淆,在這裏看到大量的筆記它是(尤其是在評論)如何不安全: Hardest-To-Reverse JavaScript obfuscator

+0

這很簡短,服務器端的行動是我可能會去的。謝謝 – 2015-02-06 05:15:43

-2

如果你真的關心你的JavaScript,然後你可以

1)收集在一個單一的JS文件的JS程序和使用js compress再壓縮它,這將使其難以閱讀和理解。

2)擾碼/混淆使用JS scrambler您的JS代碼,這將使它有點困難的破解者破解你的JS

然而,考慮到工具在網絡上提供的繁多,在我看來,有惡意的黑客可能會隨時危害JS。這可以通過在服務器端施加嚴格的安全協議來補償。

希望它能幫助!

+0

我知道我們總是可以壓縮代碼,但是這種方法並不是最安全的,用戶可以隨時解壓縮它。 – 2015-02-06 05:29:27