ajhsu / blog

The external storage of my brain.
3 stars 0 forks source link

Security issues of HTML5 Canvas #79

Open ajhsu opened 6 years ago

ajhsu commented 6 years ago

Why it matters?

The potential security issue about HTML5 canvas would be: https://simonsarris.com/understanding-the-html5-canvas-image-security-rules/

Related topics about the issue

ajhsu commented 6 years ago

<img> 是可以不管 Same-origin policy 存取 Cross-origin images;但是當你把 img 的內容畫在 Canvas 時,Canvas 就無法輸出任何資料,因為這時的 Canvas 已經被 img 給污染 (tainted) 了。

另一方面,如果你透過 new Image() 來取得擁有 CORS 權限的圖片,並且畫到 Canvas 時,則可以正常輸出,因為所有的流程都符合 CORS 的標準。反之,若透過 new Image 來取得沒有 CORS 權限的圖片,則是會被擋下來的 (符合 Same-origin policy)。