2011-11-14 51 views
0

我正在使用SimplePie在RSS閱讀器上工作。有沒有一種安全的方式來緩存和調整PHP的遠程圖像?

我想拉動RSS訂閱源並以縮略圖顯示文章。我正在使用RSS Enclosures,稍後將解析RSS <項目>對於<img>'s。

是否有安全的方式將這些遠程圖像下載到我的服務器,以便我可以緩存它們並調整它們的大小?

我有一些關於如何用cURL完成的想法,但我對安全感興趣。我知道我可以通過文件擴展來限制,我可以看看MIME類型,但我只想知道這是否可行/安全。如果是這樣,應該採取哪些措施來確保沒有漏洞。

+1

你擔心什麼特定的安全問題? – Homer6

+0

可能是XSS或者只是從一個惡意的RSS源執行任何代碼來欺騙我的應用程序,使其認爲它的腳本是圖像。我知道SimplePie在避免XSS方面很不錯,但是將任意遠程文件下載到服務器上的公共位置會帶來安全風險。 – Matt

回答

2

調整圖像隨着gdimagemagick

,或者你可以用這種方式做到這一點看看下面的Link

+0

+1:修改使用這種工具的cotnent應該刪除任何惡意內容 - 不要將原始圖像存儲在文檔根目錄中。 – symcbean

+0

好吧,所以使用GD或imagemagick打開遠程文件沒有風險,只要我不存儲原始文件?另外,我會看看這個鏈接。因爲我對安全性有很好的理解,所以我並不擔心實際上寫這個,因爲我對安全性感到擔憂,但我不是專家。 – Matt

0

更多鈔票的安全問題:

  • 遠程執行腳本。不知何故,你下載一個PHP腳本,而不是一個圖像和服務器執行它在稍後調用這個圖像。

解決方案:在任何Web服務器上,您都可以配置上傳目錄,以便在那裏執行任何腳本。別忘了給圖像添加適當的擴展(更好地從列表中選擇,不要相信MIME類型)。

  • XSS在客戶端閱讀RSS。你下載一張圖片。但它似乎是一個JavaScript。

解決方案:請確保您在<img src"...">標記中插入到此imgae的鏈接。腳本不會從img標籤執行。此外,通過GD或Imagic調整圖像大小會破壞裏面的任何js,如果有的話。

+0

感謝您的意見,但我想我已經涵蓋了第二部分。此外,可以從圖像的src屬性執行腳本,所以我不確定它本身是否100%安全([link](http://ha.ckers.org/xss.html) )。當然關於使用GD或imagemagick的提示聽起來很有用。 – Matt

相關問題