2012-10-24 39 views
3

我們正在考慮允許用戶在我們的網絡應用中上傳SVG。由於我們知道在不可信的SVG中存在大量複雜的漏洞,我們之前一直在猶豫。一位同事發現了Inkscape的--vacuum-defs選項,並且認爲它可以使所有不可信的SVGS安全處理。Inkscape的真空防護系統能讓SVG真正安全嗎?

根據手冊頁,該選項「從SVG文件的部分中刪除所有未使用的項目。如果此選項與--export-plain-svg一起調用,則只有導出的文件會受到影響。單獨使用,指定的文件將被修改。「然而,根據我的同事的說法,「刪除腳本,刪除XML轉換,不容忍畸形,刪除編碼並刪除外部導入。」

這是真的嗎?如果是這樣,我們應該感到安全嗎接受不可信的SVGs嗎?

+0

安全嗎? – rook

回答

1

據我所知,服務不可信SVG的主要問題是SVG文件可以包含Javascript這一事實,SVG很明顯,因爲嵌入式javascript是格式,但是如果瀏覽器不小心,它可能會發生在每種類型的上傳文件中

因此,即使現代瀏覽器不能執行在< img>標籤中找到腳本,以防萬一我認爲從不同域中提供的圖像並不附加cookies/auth,這樣任何執行的腳本都不會損害用戶的數據。那將是我首先關心的問題。

當然,如果用戶下載SVG,然後從桌面打開它並恰好用瀏覽器打開它,它可能會執行潛在的惡意加載。所以回到原來的問題,--export-plain-svg確實刪除了腳本,但由於我不知道其他特定於SVG的漏洞,我沒有檢查它們。