2010-02-24 155 views
1

保護Flex-BlazeDS應用程序的最佳方式是什麼?我搜索了幾個解決方案。從jsight問題後保護Flex-BlazeDS應用程序的最佳方式是什麼?

UPDATE:

  • 的Flex會登錄,所以RemoteObject上我將設置憑據
  • 我不知道是否有自帶的認證和授權使用BlazeDS(的WebORB比如做和WebORB在他們的產品看到BlazeDS)
  • SSL不需要
  • 我見過一些在網上談論春季安全的鏈接,所以我會檢查出來。

驗證將通過比較用戶登錄和密碼到數據庫來完成。

+0

我建議使用SSL和某種身份驗證,但這聽起來可能很尷尬。 :)更嚴重的是,我們需要了解更多細節......你是否使用spring(spring-security可以很好地適用於Flex/Blaze)或其他框架?你想要SSL嗎?你想要一個登錄頁面(JSP風格)或登錄你的Flex應用程序? – jsight 2010-02-24 19:37:46

+0

- Flex會登錄,所以在RemoteObject上我會設置憑證 - 我不知道是否有認證和授權BlazeDS(例如WebORB和WebORB查看BlazeDS的產品) - 不需要SSL - 我在網上看到一些關於春季安全的鏈接,所以我會檢查一下。 – 2010-02-24 20:10:02

回答

4

我的2美分:

  • 我們有一個Flex應用程序和我們的登錄屏幕是Flex應用程序的一部分。我們不使用SSL,但如果您需要它,您可以定義一個安全通道(但您不需要);
  • 我們在服務器上創建了自己的適配器類實例(它擴展了BlazeDS自帶的)。這個想法是,這個類將檢查該請求所屬的會話是否具有經過身份驗證的用戶。在Flex方法/類中(在Java方面),我們使用註釋來通知適配器類有關必須滿足的要求,以便調用該方法 - 我們將這些註釋稱爲「FlexService」(對於類)和「 FlexMethod「(用於方法);
    • 這背後的主要原因是爲了避免方法被調用,如果用戶之前沒有被認證,我們希望更多的粒度控制,而不僅僅是「阻止所有人」。我們有許可要求,此庫還負責檢查用戶是否擁有許可證,以及該許可證是否對每個請求仍然有效。
  • 請記住在將密碼保存到數據庫之前先對密碼進行哈希處理,然後僅比較哈希值。您可以在Flex客戶端中一次散列它(因此開放密碼永遠不會發送到服務器),並在將散列值保存到數據庫之前重新散列值(以便如果某人獲得數據庫散列密碼,他仍然無法破解進入你的系統,因爲他沒有從Flex客戶端發送的原始哈希值)。

我非常確定,如果BlazeDS實現了上述所有功能,我會得到一些降價,但我不喜歡我發現的原生的,我認爲使用註釋是一個很好的解決方案,尤其是因爲無論如何我們都使用註釋來標記BlazeDS方法的方法(所以IntelliJ會停止打擾我們未調用任何方法的方法)。

相關問題