2014-09-22 50 views
1

在安全性方面哪個更合適?file_get_contents vs cUrl。哪個更相關和更安全?

在file_get_contents()的情況下,如果發生任何錯誤,它會顯示被錯誤消息中可能被攻擊的url。

+1

>>顯示的URL被稱爲在錯誤味精<<你知道,你可以設置顯示錯誤關閉,你應該做的在生產服務器上? – donald123 2014-09-22 09:39:23

+2

兩者都是安全的,但'curl'會給你選項,'file_get_contents()'不能 – 2014-09-22 09:39:42

+0

yes作爲@jogesh_pi捲曲,給你更多的選擇,但你應該真的告訴我們你想做什麼。 – 2014-09-22 09:40:37

回答

3

我覺得捲曲更安全,因爲如果你使用遠程文件正在與file_get_contents()函數,你需要啓用「allow_url_fopen選項」

參考:
http://25labs.com/alternative-for-file_get_contents-using-curl/
http://phpsec.org/projects/phpsecinfo/tests/allow_url_fopen.html

而且持續討論在這個問題中的意見,是捲曲給你更多的選擇,如果你想檢查更多,你可以在文檔中看到它here
對於file_get_contents()它只是一個簡單的GET請求。如果fopen封裝已啓用

0
  • 的file_get_contents只對GET請求
  • 的file_get_contents需要在allow_url_fopen訪問遠程數據源

的URL可以作爲具有這種功能的文件名有用。有關如何指定文件名的更多詳細信息,請參閱fopen()。請參閱支持的協議和包裝以獲取有關各種包裝具有哪些功能的信息的鏈接,關於它們的用法的註釋以及它們可能提供的任何預定義變量的信息。

  • 您可以使用cURL在請求中使用更多選項。看看setopt

它顯示在錯誤消息中可能會被調用的URL。

關閉錯誤報告並確保display_errors已停用。創建自己的處理程序來處理錯誤也是值得的。

error_reporting(0); 
ini_set('display_errors', 0); 
+2

cURL仍然更強大,但file_get_contents支持流上下文,這使得它可以做很多實際操作,包括任何包括POST在內的任意方法。 – ColinM 2015-03-03 17:49:16