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