錯誤處理
在之前我們在寫程式碼的時候常常會看到:函數名稱寫錯了,忘加分號了,函數被重新定義了都會報各種不同樣的錯。
在開發中,顯示錯誤對我們的開發非常有利。因為,顯示錯誤後能幫我們快速定位錯誤、解決問題。
而在生產環境(即公網)給其他人訪問的的網站、微網站、手機網站、手機介面... ...等等。
如果錯誤顯示出來了,就容易暴露:
- 伺服器的檔案路徑和檔案儲存規格
- 有些人喜歡用個人名稱命名,透過社會工程學可以反向推理出密碼
- 有時還會暴露mysql資料庫伺服器的位址
... ... 等等
上面這些資訊特別容易被網路上別有用心的一些人給利用。
例如下面這段程式碼,我們不加分號就全面暴露了我們的伺服器端檔案存放路徑、框架資訊等。如下:
<?php $fp = fopen('abc.txt','a+') fwrite($fp,'abc'); fclose($fp); ?>
報錯了:
錯誤提示中文翻譯過來為:
解析錯誤:文法錯誤。意外發生在/home/vagrant/Code/Laravel/public/index.php 檔案的第5行fwrite附近。
那,我們該如何解決了?
——這就需要學習我們的錯誤處理章節。