2012-06-14 60 views
0

只是一個非常快速的問題: 有沒有一種方法可以確定在處理請求的回調servlet中將Blob上傳到App Engine的客戶端的遠程IP?常規的[request].getRemoteAddr() Java函數返回處理上載的Google服務器的IP,至少在dev模式下,我看到的唯一額外的標題字段是X-AppEngine-BlobUpload = true,這沒有用。確定AppEngine Blob上傳的遠程IP

謝謝。

回答

1

沒有直接的支持。您可以通過將您正在生成上載表單的客戶機的IP地址隱藏到表單中來間接跟蹤此信息。然後,一旦blob上傳並且控件被重定向到您的應用程序,它就會在您請求存儲的地方提供。

+0

這絕對是一個解決方案。謝謝。但是,在我的情況下,將是一個破解,因爲我實際上傳了一個XHR請求,而不是一個表單... 基本上,我一直在尋找一個非顯而易見的方式來了解是否上傳來自uploadURL的客戶端,而不是那些搶走或猜測鏈接的人。你有這個想法嗎? 你認爲我應該提交一個功能請求嗎?對於Blobstore服務生成的回調請求,應該包含一個「X-Forwarded-For」頭文件或相當簡單的代碼。 –

+0

由於鏈接本質上是隨機的,並且在生成鏈接後僅在10分鐘內有效,所以我不確定它是否值得花太多時間嘗試執行諸如此類的檢查。 –

+0

True ...這是「完整的」故事:我對每個客戶端請求都使用質詢/響應身份驗證,我將這些挑戰存儲在源自客戶端IP的名稱空間中的MemCache中,以防止生日悖論漏洞該服務曾經變得非常流行。我想我只會遇到與待定上傳相關的第二組挑戰,而不是特定的客戶端IP。它會工作,它只是沒有我想要的那麼幹淨...... –