2011-06-29 29 views
2

我想下載一個圖像,而不必將它的URL放置在瀏覽器歷史記錄中,然後將其顯示在HTML/Javascript中。該網址中包含敏感數據,因此無法保存在客戶端。使用POST從服務器獲取數據似乎是不允許保存URL的最佳方法。顯示一個圖像,但沒有URL緩存且沒有數據URI?

數據URI可以工作,除了IE沒有強大的支持(大小限制)。

是否有另一種方法來完成這項工作?是否存在URI技巧或使用Canvas進行渲染的方法?

編輯:澄清...數據來自第三方圖像提供商。敏感數據是驗證參數,出於安全目的,驗證參數不得存儲在客戶端。

+0

是什麼讓你認爲''將添加任何瀏覽器歷史記錄? –

+1

什麼是服務器端語言? PHP,ASP等。你可以創建一個「圖片代理」,這樣最糟糕的情況就是用戶看到類似於「site.com/getImage.php?id=what」的東西(這實際上是轉發從'securesite.com/private/something.jpg') –

+1

爲什麼url中有敏感數據?任何網絡流量都很容易監控,因此如果信息非常敏感,隱藏它非常小的障礙。 –

回答

2

我假設URL中的敏感數據不是網址本身,而是傳遞了一些參數。
我的建議:支持一個一次性的地址,其中有一個唯一的鍵(像一個GUID),將指向圖像。如果有人試圖再次使用它,它會是無用的

例子:

http://www.my-domain.com/images/621536253-2487234-gfhgdsfhf-7853243

+0

好主意,但URL指向第三方服務。敏感數據是一個授權密鑰,由於安全原因,該密鑰不能被緩存。 – ricosrealm

+1

@ricosrealm您可以通過您的服務器代理該內容來增加源代碼。好的版本將有一個流進來,一個流出來回答圖像請求。簡單的版本是在請求時將圖像複製到您的服務器,然後用它來回答客戶端請求 –

+0

此代理解決方案是我最終用來解決此問題的解決方案。 – ricosrealm