簡(jiǎn)介

PHP 作為一種強(qiáng)大的語言和解析器,無論是作為包含在 Web 服務(wù)器中的模塊還是作為單獨(dú)的 CGI 二進(jìn)制文件執(zhí)行,它都可以在服務(wù)器上訪問文件、運(yùn)行命令以及創(chuàng)建網(wǎng)絡(luò)連接等。 默認(rèn)情況下,這些功能會(huì)使 web 服務(wù)器運(yùn)行的任何內(nèi)容變得不安全。 PHP 專門設(shè)計(jì)為一種比 Perl 或者 C 編寫 CGI 程序更安全的語言,并且正確選擇編譯時(shí)和運(yùn)行時(shí)配置選項(xiàng)以及正確的編碼實(shí)踐,它可以同時(shí)滿足所需的自由和安全。

由于使用 PHP 有很多不同的方式,因此有很多配置選項(xiàng)來控制其行為。大量選項(xiàng)保證可以將 PHP 用于多種用途,但是這也意味著這些選項(xiàng)和服務(wù)器配置的組合會(huì)導(dǎo)致設(shè)置不安全。

PHP 配置的靈活性與代碼的靈活性不相上下。Shell 用戶具備的所有服務(wù)器端應(yīng)用功能,PHP 同樣也能構(gòu)建完整。也可以在嚴(yán)格控制的環(huán)境中用于簡(jiǎn)單的服務(wù)器端包含,具有很小的風(fēng)險(xiǎn)。 環(huán)境如何構(gòu)建、安全性如何,很大程度上取決于 PHP 開發(fā)者。

本章以一些常規(guī)的安全建議作為開始,解釋了不同配置選項(xiàng)組合以及可以安全使用的情況, 并描述了不同安全級(jí)別進(jìn)行編碼時(shí)的不同注意事項(xiàng)。