PHP 作為一種強大的語(yǔ)言和解析器,無(wú)論是作為包含在 Web 服務(wù)器中的模塊還是作為單獨的 CGI 二進(jìn)制文件執行,它都可以在服務(wù)器上訪(fǎng)問(wèn)文件、運行命令以及創(chuàng )建網(wǎng)絡(luò )連接等。 默認情況下,這些功能會(huì )使 web 服務(wù)器運行的任何內容變得不安全。 PHP 專(zhuān)門(mén)設計為一種比 Perl 或者 C 編寫(xiě) CGI 程序更安全的語(yǔ)言,并且正確選擇編譯時(shí)和運行時(shí)配置選項以及正確的編碼實(shí)踐,它可以同時(shí)滿(mǎn)足所需的自由和安全。
由于使用 PHP 有很多不同的方式,因此有很多配置選項來(lái)控制其行為。大量選項保證可以將 PHP 用于多種用途,但是這也意味著(zhù)這些選項和服務(wù)器配置的組合會(huì )導致設置不安全。
PHP 配置的靈活性與代碼的靈活性不相上下。Shell 用戶(hù)具備的所有服務(wù)器端應用功能,PHP 同樣也能構建完整。也可以在嚴格控制的環(huán)境中用于簡(jiǎn)單的服務(wù)器端包含,具有很小的風(fēng)險。 環(huán)境如何構建、安全性如何,很大程度上取決于 PHP 開(kāi)發(fā)者。
本章以一些常規的安全建議作為開(kāi)始,解釋了不同配置選項組合以及可以安全使用的情況, 并描述了不同安全級別進(jìn)行編碼時(shí)的不同注意事項。