2012-03-11 72 views
4

我打算讓網站用戶上傳自己的SVG文檔並使用inkscape或或svg2pdf來呈現它們。用戶要麼是未經身份驗證的,要麼經歷一個微不足道的註冊過程,所以我會期待一些黑客攻擊。因此,我應該感謝任何關於我可以採取哪些過濾措施來減少安全威脅的指針。讓用戶呈現自己的SVG文件的安全隱患

  • Inkscape中似乎並沒有被JavaScript onload tags被打擾,並愉快地呈現無任何不幸發生的內容(這麼說,我不能讓火狐10咳出一個警告框,或者使用這種方法)。
  • 我擔心<image xlink:href />標記可能會使用外部URI鏈接到巨大或格式錯誤的位圖圖像 - 理論上可能會導致服務崩潰。是否有一種簡單的方法來遍歷XML文檔來過濾這些文檔?我當然可以用XMLReader輕鬆實現這一點,但是不知道我是否可能需要爲'onload'處理類似&#111;nload的事情(儘管Firefox已經將它拒絕爲無效,所以這可能是不必要的擔心)。 Sidenode:圖片本身是可以接受的,但我想我會要求它們要麼嵌入data:,要麼將可接受的目標URI列入白名單,並具有文件大小限制。
  • 是否有任何SVG指令(特別是呈現文本)可以包含系統文件的文本內容,如/etc/passwd等?
  • 我也可以採取的一種方法是針對SVG規範進行驗證。這是我詢問過的另一個問題here的主題。

我使用PHP 5.2與XMLReader和XMLWriter,雖然其他基於PHP流的系統是可以接受的。系統的開發爲OS X 10.6.8,生產時爲LAMP。

回答

3

是否有任何SVG指令(尤其是渲染文本)可以包含系統文件的文本內容,如/ etc/passwd等?

您需要確保XXE攻擊不可用於您的具體實施,see here

+0

謝謝,我會研究一下。如果你有任何想法如何複製這樣的攻擊,我會有一些具體的測試對象。 – halfer 2012-03-12 23:09:59

相關問題