国产精品成人VA在线观看,亚洲日韩在线中文字幕综合,亚洲AV电影天堂男人的天堂,久久人人爽人人爽人人av东京热

News新聞

業(yè)界新聞動(dòng)態(tài)、技術(shù)前沿
Who are we?

您的位置:首頁      樂道系統(tǒng)FAQ      php安全配置記錄和常見錯(cuò)誤梳理(總結(jié))

php安全配置記錄和常見錯(cuò)誤梳理(總結(jié))

標(biāo)簽: 發(fā)布日期:2017-03-28 00:00:00 269

通常部署完php環(huán)境后會(huì)進(jìn)行一些安全設(shè)置,除了熟悉各種php漏洞外,還可以通過配置php.ini來加固PHP的運(yùn)行環(huán)境,PHP官方也曾經(jīng)多次修改php.ini的默認(rèn)設(shè)置。

下面對(duì)php.ini中一些安全相關(guān)參數(shù)的配置進(jìn)行說明

register_globals 
當(dāng)register_globals = ON時(shí),PHP不知道變量從何而來,也容易出現(xiàn)一些變量覆蓋的問題。因此從最佳實(shí)踐的角度,強(qiáng)烈建議設(shè)置 register_globals = OFF,這也是PHP新版本中的默認(rèn)設(shè)置。 
 
open_basediropen_basedir 
可以限制PHP只能操作指定目錄下的文件。這在對(duì)抗文件包含、目錄遍歷等攻擊時(shí)非常有用,應(yīng)該為此選項(xiàng)設(shè)置一個(gè)值。 
需要注意的是,如果設(shè)置的值是一個(gè)指定的目錄,則需要在目錄最后加上一個(gè)“/”,否則會(huì)被認(rèn)為是目錄的前綴。 
open_basedir = /home/web/html/
 
allow_url_include = Off 
為了對(duì)抗遠(yuǎn)程文件包含,請(qǐng)關(guān)閉此選項(xiàng),一般應(yīng)用也用不到此選項(xiàng)。同時(shí)推薦關(guān)閉的還有allow_url_fopen。 
 
display_errors = Off 
錯(cuò)誤回顯,一般常用于開發(fā)模式,但是很多應(yīng)用在正式環(huán)境中也忘記了關(guān)閉此選項(xiàng)。錯(cuò)誤回顯可以暴露出非常多的敏感信息,為攻擊者下一步攻擊提供便利。推薦關(guān)閉此選項(xiàng)。 
 
log_errors = On 
在正式環(huán)境下用這個(gè)就行了,把錯(cuò)誤信息記錄在日志里。正好可以關(guān)閉錯(cuò)誤回顯。 
 
magic_quotes_gpc = Off 
推薦關(guān)閉,它并不值得依賴(請(qǐng)參考“注入攻擊”一章),已知已經(jīng)有若干種方法可以繞過它,甚至由于它的存在反而衍生出一些新的安全問題。XSS、SQL注入等漏洞,都應(yīng)該由應(yīng)用在正確的地方解決。同時(shí)關(guān)閉它還能提高性能。 
 
cgi.fix_pathinfo = 0 
若PHP以CGI的方式安裝,則需要關(guān)閉此項(xiàng),以避免出現(xiàn)文件解析問題(請(qǐng)參考“文件上傳漏洞”一章)。 
 
session.cookie_httponly = 1 開啟HttpOnly 
 
session.cookie_secure = 1 
若是全站HTTPS則請(qǐng)開啟此項(xiàng)。 
 
sql.safe_mode = Off 
PHP的安全模式是否應(yīng)該開啟的爭議一直比較大。一方面,它會(huì)影響很多函數(shù);另一方面,它又不停地被黑客們繞過,因此很難取舍。如果是共享環(huán)境(比如App Engine),則建議開啟safe_mode,可以和disable_functions配合使用; 
如果是單獨(dú)的應(yīng)用環(huán)境,則可以考慮關(guān)閉它,更多地依賴于disable_functions控制運(yùn)行環(huán)境安全。 
 
disable_functions = 
能夠在PHP中禁用函數(shù)(如上默認(rèn)=號(hào)后面什么都不配置)。這是把雙刃劍,禁用函數(shù)可能會(huì)為開發(fā)帶來不便,但禁用的函數(shù)太少又可能增加開發(fā)寫出不安全代碼的幾率,同時(shí)為黑客獲取webshell提供便利。 
一般來說,如果是獨(dú)立的應(yīng)用環(huán)境,則推薦禁用以下函數(shù): 
disable_functions = escapeshellarg, escapeshellcmd, exec,passthru, proc_close, proc_get_status, proc_open, proc_nice,proc_terminate, shell_exec, system, ini_restore, popen, dl,disk_free_space, diskfreespace, set_time_limit, tmpfile, fopen,readfile, fpassthru, fsockopen, mail, ini_alter, highlight_file,openlog, show_source, symlink, apache_child_terminate,apache_get_modules, apache_get_version, apache_getenv,apache_note, apache_setenv, parse_ini_file