2009-12-31 86 views
2

我目前正在構建一個在客戶端呈現RSS和ATOM源的應用程序。我不能直接發送一個Ajax請求「https://stackoverflow.com/feeds/tag/php」,但我可以向我的服務器的請求,只是回聲一樣的XML文件:迴應外部XML文件

<?php 
echo file_get_contents('https://stackoverflow.com/feeds/tag/php'); 
?> 

哪些安全隱患(如果有的話)就這樣做?

回答

3

StackOverflow現在允許破解客戶端獲得的數據,並用惡意或煩人的東西代替它。 (公平起見,即使您能夠直接使用URL,也可以。)

您的客戶現在被允許導致您的服務器向StackOverflow發出大量請求,他們可能會阻止您訪問網站或類似的東西。 (我確實希望你應用一點點緩存。)

0

您可能可以使用Filter functions在echo之前清理數據。一般來說,除非您從中獲取數據的主機由您控制,並且不允許一般用戶上傳或添加將被回顯的數據,否則我不會相信它。你根本不知道某人可能能夠通過什麼。

0

我會寫一個腳本,它可以在cron上運行並獲取數據並編寫自己的數據庫/文件系統/緩存(您的選擇),並將它們分配給用戶。 你永遠不知道其他服務器響應速度有多慢,如果響應速度慢,也會降低你的網站速度。

-1

你必須發送

header('application/xml'); 

然後客戶將處理爲XML,並沒有XSS可據我可以告訴發生。