14

第一件事是第一件事,我見過nwsnapshot。並沒有幫助。保護node-webkit桌面應用程序中的源代碼

我使用node-webkit作爲桌面應用程序構建庫存管理系統。正在構建的項目使用複合js(mvc javascript庫)。它們有一個確定的文件夾結構(你知道mvc)和其中的多個JavaScript文件。

問題是nwsnapshot允許應用程序只有一個快照文件,但應用程序的邏輯遍佈在不同的JavaScript文件中的所有文件夾。

因此,如何在將其發送給客戶端之前保護我的源代碼?或者任何其他解決方法或更聰明的方式(是的,我知道混淆)。

回答

20

可以使用nodewebkit命令調用nwsnapshot編譯JavaScript代碼轉換成二進制將被加載到應用程序不指定任何JS文件

nwsnapshot --extra-code application.js application.bin 

package.json補充一點:

snapshot: 'application.bin' 
+3

這真的應該是被接受的答案。 nwsnapshot會將js源碼編譯成字節碼並將其注入到節點進程中。接受的答案使用代碼縮小器和混淆器,這些都很容易克服。 – 2014-12-06 15:06:25

+0

是否有可能將其他資源轉換爲二進制文件如字體文件? – 2015-04-07 14:58:48

+0

更新:使用[nwjc](https://github.com/nwjs/nw.js/wiki/Protect-JavaScript-source-code-with-v8-snapshot)。與nwsnapshot相比創建了更小的二進制文件 – sunnyvilles 2015-07-10 06:00:51

0

您可能會考慮在構建過程中將JS文件合併到一個文件中並編譯它。

+0

任何參考或示例或工具>? – sunnyvilles 2013-05-08 07:56:29

+1

http://requirejs.org/docs/optimization.html – pfried 2013-05-08 12:21:17

+0

仍然不是我所期望的,但_requirejs_現在已經足夠了。謝謝@pfried。 – sunnyvilles 2013-06-11 11:40:35

2

這真的取決於你的意思是「安全」。

通過使用Google Closure Compiler,您可以相當好地模糊JavaScript代碼(以及潛在地提高性能)。

我不知道任何現成的解決方案來加密/解密您的JavaScript,老實說,我會質疑需要。

有些人認爲他們需要讓他們無法查看他們的源代碼,因爲他們習慣於處理編譯語言,只向用戶發送二進制文件。事實是,對二進制代碼進行逆向工程並不像有些人認爲的那麼困難,所以如果有任何財務激勵,運輸源代碼和傳統的二進制代碼之間幾乎沒有區別。

某些語言提供了真正的已部署資產加密,如Microsoft的SLPS。在我看來,這個市場很小,微軟把它交給了一個合作伙伴(就我看來)。事實是,大多數客戶不會對獲取源代碼感興趣;他們對自己能夠高效地服務和支持該代碼的能力更感興趣,同時他們繼續工作。