我目前正在構建一個在客戶端呈現RSS和ATOM源的應用程序。我不能直接發送一個Ajax請求「https://stackoverflow.com/feeds/tag/php」,但我可以向我的服務器的請求,只是回聲一樣的XML文件:迴應外部XML文件
<?php
echo file_get_contents('https://stackoverflow.com/feeds/tag/php');
?>
哪些安全隱患(如果有的話)就這樣做?
我目前正在構建一個在客戶端呈現RSS和ATOM源的應用程序。我不能直接發送一個Ajax請求「https://stackoverflow.com/feeds/tag/php」,但我可以向我的服務器的請求,只是回聲一樣的XML文件:迴應外部XML文件
<?php
echo file_get_contents('https://stackoverflow.com/feeds/tag/php');
?>
哪些安全隱患(如果有的話)就這樣做?
StackOverflow現在允許破解客戶端獲得的數據,並用惡意或煩人的東西代替它。 (公平起見,即使您能夠直接使用URL,也可以。)
您的客戶現在被允許導致您的服務器向StackOverflow發出大量請求,他們可能會阻止您訪問網站或類似的東西。 (我確實希望你應用一點點緩存。)
您可能可以使用Filter functions在echo之前清理數據。一般來說,除非您從中獲取數據的主機由您控制,並且不允許一般用戶上傳或添加將被回顯的數據,否則我不會相信它。你根本不知道某人可能能夠通過什麼。
我會寫一個腳本,它可以在cron上運行並獲取數據並編寫自己的數據庫/文件系統/緩存(您的選擇),並將它們分配給用戶。 你永遠不知道其他服務器響應速度有多慢,如果響應速度慢,也會降低你的網站速度。
你必須發送
header('application/xml');
然後客戶將處理爲XML,並沒有XSS可據我可以告訴發生。