簡體   English   中英

如何使Java / Java EE應用程序的IP更安全?

[英]How can I make IP of my Java/Java EE app more secure?

我們有一個使用Java / Java EE / Spring批處理構建的應用程序(例如核心應用程序)。 該應用程序包含所有業務邏輯,並打包到jar文件中。

現在,我們有了另一個使用Spring MVC構建的Web應用程序Hibernate。 該Web應用程序向用戶提供UI,以配置我們的核心應用程序。 該Web應用程序使用jar應用程序的核心,通過引用配置來執行業務任務。 現在,我們希望將這些應用程序作為產品分發給各個公司。 但是眾所周知,罐子/戰爭可以反編譯。

因此,我們該怎么做才能節省IP?

目前,我們正在嘗試DashO(Preempitve的Java混淆器)。 即使經過混淆,也可以使用反編譯器讀取代碼。 即使讀取代碼復雜得多,也可以讀取業務邏輯。

保護我們的IP的最佳做法是什么? 有什么方法可以使我們的應用程序更安全?

編輯 :請注意,我們必須向我們的客戶分發WAR,這是令人擔憂的主要原因。

您是否要保護服務器端邏輯或/或客戶端邏輯,或同時保護兩者?

如果是第一個文件,則說明您已經完成,因為您無法反編譯您無權訪問的文件。

如果是第二秒,那么您很不走運。 將敏感的邏輯從客戶端轉移到服務器,使客戶端成為提供用戶輸入並在漂亮的UI中格式化服務器輸出格式的中間人。 這樣,您就不會在乎是否有人看到您無聊的Web服務客戶端。

以下是一些保護代碼安全的方法。

  1. 使用復雜的混淆器通過以下步驟:

[復雜的混淆器工具] [1]

有一些類似的工具,其功能遠不只是Java代碼修改。

  1. 使用SSL保護您的網絡。 使整個網絡路徑加密。

  2. 使用證書管理可以增強安全性,並防止未經授權的用戶非法訪問您的源代碼。

如果您對以上內容有任何疑問,請告訴我。

謝謝。

您可以從網絡上下載部分應用程序嗎? 因此戰爭開始了,從服務器上下載了更多模塊,然后使用它們。 另外,請確保下載模塊未存儲在磁盤上的任何位置。

或者,如果您構建一個API並將重要的IP移入該API呢?

還是將部分代碼移入本地代碼呢?

觀察不是安全。 正如我的安全伙伴所說的那樣,它的“通過隱秘實現安全”。

我的簡短回答是,您應該從一開始就在設計應用程序時考慮安全性。 長答案是您需要確保通信安全。 例如,您可能需要某種唯一的公用/專用密鑰才能訪問您的Web服務,並將所有Web服務設置為HTTPS,以使黑客無法輕松地窺探您的數據包並挑選協議。 我們可以稱其為“許可證密鑰”。 但是,正如每個對安全性一無所知的人都會告訴您的那樣,實際上沒有任何一種完全有效的方法,只有使它變得更加困難的方法。

我有個伙伴曾經寫過與此相關的Java Applet游戲。 當他放棄自己的代碼,以為這將阻止黑客發送虛假分數時,他發現他們只是開始反編譯代碼並直接調用JAR。 最終,他重新編寫了自己的整個分數跟蹤系統,使其更加“智能”,以至於它知道您不能一次獲得10000000分。 取而代之的是,客戶端必須發送定期的分數更新,而服務器具有固定的規則,可以防止分數增長過快。

無論如何,那就是我的0.02美元。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM