2010-07-27 50 views

回答

2

你不應該。使用瀏覽器cookie或會話令牌來標識服務器的用戶。例如:

  1. 用戶在Flex表單中輸入用戶名和密碼並單擊登錄。
  2. 服務器驗證憑據。然後,無論是在內存中還是在數據庫中,服務器都會將一個隨機(且足夠安全)的令牌與用戶關聯起來。然後服務器將令牌返回給客戶端。
  3. 客戶端將令牌保存在Cookie,LocalSharedObject中或僅保存在內存中。隨後的請求還包括令牌。
0

用戶憑證通常存儲在會話變量中。

1

您可以使用ExternalInterface與JavaScript通信並將數據存儲在瀏覽器cookie中。

不要將用戶的名字或密碼存儲在cookie中 - 在服務器中創建一個會話,並在其中存儲憑據,並將會話ID存儲在瀏覽器cookie中。

0

您不一定需要將憑據保存爲本地存儲器中的純文本;實際上,本地存儲(SharedObject)實際上是作爲AMF序列化的,所以它不是以純文本開頭的。無論您使用何種介質來存儲敏感數據,您都應該考慮使用某種哈希或加密技術,如SHA1或RSA。

散列和加密的區別是這樣的:

  • 散列(SHA1,MD5等)是單向加密 - 換句話說,這是非常難以確定的原始值哈希值,所以你可以做的是將一個哈希值與另一個哈希值進行比較,因爲這些哈希算法總是會吐出同樣的東西。
  • 加密(RSA,AES,等)是一個雙向加密 - 換句話說,你可以確定經加密的數據,原始值通常通過使用公共/私有密鑰組合

這真的取決於你想要做什麼。

希望你正確的

1

如果你的服務不支持的憑證,那麼只能認爲你可以做的是保存SharedObject用戶登錄狀態。

可以的UserName + Random Token哈希值保存到SharedObject和保存的UserName副本太SharedObject,那麼當應用程序創建creationComplete檢查wheather的散列值匹配保存的用戶名。

有關這一招的好處是:

  1. 密碼永不當地持續存在。
  2. 難以假冒登錄,因爲需要 將用戶名與哈希值相匹配。

這裏有點難以解釋你可以檢查一下here,源代碼可以下載。

相關問題