2011-09-02 59 views
1

如果從其他網站上的圖片,加載到頁面,然後在複合寫入到畫布作爲部分成分,使用:爲什麼這會給DataURL行一個安全錯誤?

context.drawImage(image, 0, 0, w, h); 

它似乎什麼不安全就已經發生了抽獎畫布。 爲什麼然後

window.location = canvas.toDataURL('image/png'); 

提出了一條錯誤消息。 SECURITY_ERR; DOM異常18.它不是似乎更不安全比額外的步驟首先在其他地方保存外部站點圖像。

我的問題不是如何來解決這個問題,這麼多,還是什麼錯誤意味着,而是

這是爲什麼不安全?如果頁面由服務器加載,作者肯定會期望該操作。

+0

您是否正在從文件系統加載網頁?如果是這樣,一些條件似乎從實際的網站沒有本地文件系統中觸發異常18:http://stackoverflow.com/questions/2704929/uncaught-error-security-err-dom-exception-18 。 – jfriend00

+0

我確實遇到過這種情況,但即使在本地主機上運行(正如我在同一鏈接中看到的一樣),我仍然會得到與外部圖像url相同的異常。 – datatoo

回答

5

作爲每spec,可發生信息泄漏如果從一個來源的腳本可以訪問的信息(例如讀像素)從另一來源的圖像。擔心的是惡意應用程序可能通過加載來自其他域/來源的圖像(輕鬆完成圖像)並讀取像素內容,從而推斷出本來無法訪問的信息。 XHR已經建立了防止XD泄漏的保護措施。圖像不。

+0

謝謝,非常豐富的鏈接。+ 1 – datatoo

+0

絕對正確。提及使用來自另一個域的任何圖像繪製的畫布被認爲是「髒的」,其中畫布的原始乾淨標誌爲假是很有幫助的。動態繪製的畫布只包含來自同一個域的圖像,被歸類爲「乾淨」畫布。 –

相關問題