在 2021 年 12 月底在 GitHub 有一則 Issues 特別有趣,他主要是在說明 Apple 在實作自己的 parallel-decodable PNG 有一些疏失,所以會有漏洞發生這位作者就用了這個漏洞做了一個測試網頁。
在下面這張圖可以看到左邊是使用 Safari 而右邊是使用 Chrome 開啟網頁的,而使用 Safari 開網頁的時候它會直接使用 Apple 系統的 parallel-decodable 來處理 PNG 圖片,而 Chrome 會使用自己解碼器來處理 PNG 圖片,所以就可以在網頁上明顯地發現它們會顯示不一樣的結果,有興趣的人可以打開 PNG Parser Differential 網頁看看或是直接開啟 pngdiff 這張圖片 。
其實這個功能原本是要來加速 PNG 圖片開啟速度的,但是它在底層做解壓縮的時候犯了一點錯誤,它的問題在於 decompress(a + b) != decompress(a) + decompress(b)
就是一個數學問題,不知道這個問題在新的系統會不會做修復。
有興趣可以看一下 David Buchanan 的專案 ambiguous-png-packer 理解一下它是怎麼執行的。
《AWS CDK 完全學習手冊:打造雲端基礎架構程式碼 IaC》
第 12 屆 iT 邦幫忙鐵人賽 DevOps 組冠的《用 CDK 定 義 AWS 架構》
第 11 屆 iT 邦幫忙鐵人賽《LINE bot 好好玩 30 天玩轉 LINE API》
一個熱愛分享的雲端工程師!