2011-09-11 62 views
2

我正在研究一個允許用戶(發佈者)上傳文件到blobstore的應用程序,然後這個應用程序將blob返回給其他用戶,如果他們支付的話。由於這個blob存儲在特定的url上,所以如果用戶知道正確的URL,用戶仍然可以下載文件,所以我想用128位密鑰加密這些文件以防止非法下載。 BlobReader類文檔說:「此接口是隻讀的:Blobstore值不能直接由應用程序修改。」如何加密已存儲在GAE blobstore上的文件?

如何在從發佈者上傳和從用戶下載之間的某處實現加密方法。有沒有辦法讀取blob,用字節做些什麼,並在新的blob中保存新的字節?或者有類似的解決方案來完成這項工作?

+2

加密文件在這裏是一個糟糕的解決方案:如果您不希望未經授權的用戶下載文件,請不要首先將它提供給他們。 –

回答

2

根據Blobstore Python API help documentation,看起來服務斑點依賴於您定義的處理程序。您不能檢查用戶是否在該處理程序中進行了身份驗證,然後拒絕提供blob(例如通過返回錯誤代碼),而不是重寫blob?

+0

我已經在檢查用戶身份驗證,但是如果有人僞造會話令牌並且仍然能夠下載,我仍然害怕。 – Peter

+0

@Peter,如果您需要通過HTTPS請求,使用安全cookie,並對您的cookie進行數字簽名,很難想象這是如何僞造的。 –