我有一個angularJS申請,其認證系統是由具有access_token
,並寫在圍棋如何使用的access_token
後端服務器進行通信,以驗證在angularJS的應用請求圖像因此對用戶進行認證,我有將access_token
添加到每個請求?access_token=SomeTokenHere
或通過標頭Access-Token: SomeTokenHere
它的效果很好。
問題是我的後端提供受保護的圖像,出於某些安全原因,我無法將訪問令牌放在圖像src中(如果用戶將鏈接複製/粘貼到其他人,access_token也會被提供.. )
我想要做的是注入一個包含我的訪問令牌的頭文件,但由於請求是由瀏覽器創建的,所以這是不可能的。
這可能可能是一個cookie,但我會避免使用cookie,特別是因爲angularApp和後端不在同一個子域。
另一個想法是創建一個指令來獲取原始數據並將數據設置爲圖像。首先,我不知道這是否可行,並且對於網頁中的數百個圖像是否是一個好主意?
如果您有任何想法,我很樂意聽到您的消息!
謝謝
確實HMAC簽名可以解決這個問題,但我想確保即使用戶將鏈接複製/粘貼到其他人也無法獲取圖像。第二個問題是,同時生成數百個簽名不是免費的,會減慢請求處理速度。 – Arkan 2014-10-05 17:20:02
關於鏈接複製/粘貼 - 可能的部分解決方案之一是檢查引用請求頭,並拒絕來自其他域的所有請求(這是防止圖像盜鏈的典型方法)。關於簽名生成時間 - 它不是免費的,但哈希本身非常快(每幾毫秒接近數千個哈希),因此與請求期間的其他計算相比,它可能不太明顯。 (如果你想在你自己的硬件上測試openssl哈希執行性能 - 你可以使用'openssl speed sha1'命令)。 – 2014-10-05 22:40:30
有趣。我會做一些測試。同時,我會讓問題開放,但如果沒有其他人提供,我會在晚些時候接受:-) – Arkan 2014-10-06 08:25:46