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

您的位置:首頁技術文章
文章詳情頁

PHP安全-源碼暴露(二)

瀏覽:108日期:2022-09-11 18:19:14
源碼暴露

你的WEB服務器必須要能夠讀取你的源確并執行它,這就意味著任意人所寫的代碼被服務器運行時,它同樣可以讀取你的源碼。在一個共享主機上,最大的風險是由于WEB服務器是共享的,因此其它開發者所寫的PHP代碼可以讀取任意文件。

<?php

header(’Content-Type: text/plain’);

readfile($_GET[’file’]);

?>

通過在你的源碼所在的主機上運行上面腳本,攻擊者可以通過把file的值指定為完整的路徑和文件名來使WEB服務器讀取并顯示任何文件。例如,假定該腳本命名為file.php,位于主機example.org上,只要通過訪問下面鏈接即可使文件/path/to/source.php的內容暴露:

http://example.org/file.php?file=/path/to/source.php

當然,要使這段簡單的代碼起作用,攻擊者必須確切地知道你的源碼的位置,但是攻擊者可以寫出更復雜的腳本,通過它可以方便在瀏覽整個文件系統。關于此類腳本,請看本章后面部分的示例。

對該問題沒有完美的解決方案。正如第五章所述,你必須考慮所有你的源碼都是公開的,甚至是保存在WEB主目錄之外的代碼也是如此。

最好的辦法是把所有敏感數據保存在數據庫中。雖然這使一些代碼的編寫多了一層復雜性,但這是防止你的敏感數據暴露的最好方法。很不幸的是,還有一個問題。如何保存你的數據庫訪問密碼?

請看保存在網站主目錄之外一個名為db.inc的文件:

<?php

$db_user = ’myuser’;

$db_pass = ’mypass’;

$db_host = ’localhost’;

$db = mysql_connect($db_host, $db_user, $db_pass);

?>

如果該文件的路徑是已知的(或被猜中),就存在著你的服務器上的另外一個用戶訪問該文件的可能,就會獲取數據庫訪問權限,這樣你保存在數據庫中的所有數據就會暴露。

解決該問題的最好方案是把你的數據庫訪問權限以下面的格式保存在一個只有系統管理員權限才能讀取的文件中:

SetEnv DB_USER 'myuser'

SetEnv DB_PASS 'mypass'

SetEnv是一個Apache的指令,上面文件的意思是建立兩個分別代表你的數據庫用戶名及密碼的Apache環境變量。當然,該技巧的關鍵是只有系統管理員才能讀取該文件。如果你無法登錄成為系統管理員,你就可以限制該文件只能由你自已進行讀取,這樣的保護方式與上面的方式類似。

$ chmod 600 db.conf

$ ls db.conf

-rw------- 1 chris chris 48 May 21 12:34 db.conf

這就有效地防止了惡意腳本訪問你的數據中權限,因此對于數據庫中保存的敏感數據來說,不會有危及安全的重大風險。

為使該文件生效,你就需要能夠通過PHP訪問其中的數據。要達到這個目的,需要在httpd.conf中寫上如下的包含句:

Include '/path/to/db.conf'

需要注意該語句需要插入在VirtualHost區域內,否則其它用戶就能取得相應的內容。

由于Apache的父進程以系統管理員身份運行(需要綁定在80端口),它能夠讀取該配置文件,但處理服務器請求的子進程(運行PHP腳本)不能讀取該文件。

你可以通過$_SERVER超級全局數組去訪問這兩個變量,這樣在db.inc中,只要通過引用$_SERVER變量即可,而不是在其中寫明數據庫的權限:

<?php

$db_user = $_SERVER[’DB_USER’];

$db_pass = $_SERVER[’DB_PASS’];

$db_host = ’localhost’;

$db = mysql_connect($db_host, $db_user, $db_pass);

?>

如果該文件被暴露,數據庫訪問權也不會泄露。這對于共享主機是一大安全性改進,同時對于獨立主機也是一種深度防范手段。

注意在使用上述技巧時,數據庫訪問權限就位于$_SERVER超級公用數組中。這就需要同時限制普通訪問者運行phpinfo()察看或其它任何導致$_SERVER內容暴露的原因。

當然,你可以使用本技巧保護任何信息(不只是數據庫訪問權限),但我發現把大多數數據保存在數據庫更為方便,特別是由于該技巧需要得到你的主機提供商的協助。

標簽: PHP
相關文章:
主站蜘蛛池模板: 北京公寓出租网-北京酒店式公寓出租平台 | 专注氟塑料泵_衬氟泵_磁力泵_卧龙泵阀_化工泵专业品牌 - 梭川泵阀 | 防伪溯源|防窜货|微信二维码营销|兆信_行业内领先的防伪防窜货数字化营销解决方案供应商 | 天津电机维修|水泵维修-天津晟佳机电设备有限公司 | 高压直流电源_特种变压器_变压器铁芯-希恩变压器定制厂家 | AGV叉车|无人叉车|AGV智能叉车|AGV搬运车-江西丹巴赫机器人股份有限公司 | 菲希尔X射线测厚仪-菲希尔库伦法测厚仪-无锡骏展仪器有限责任公司 | 天津拓展_天津团建_天津趣味运动会_天津活动策划公司-天津华天拓展培训中心 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 上海办公室装修公司_办公室设计_直营办公装修-羚志悦装 | 培训无忧网-教育培训咨询招生第三方平台 | 管家婆-管家婆软件-管家婆辉煌-管家婆进销存-管家婆工贸ERP | 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 湖南自考_湖南自学考试 | 致胜管家软件服务【在线免费体验】| 高扬程排污泵_隔膜泵_磁力泵_节能自吸离心水泵厂家-【上海博洋】 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | 不锈钢水箱生产厂家_消防水箱生产厂家-河南联固供水设备有限公司 | 净化车间_洁净厂房_净化公司_净化厂房_无尘室工程_洁净工程装修|改造|施工-深圳净化公司 | 实木家具_实木家具定制_全屋定制_美式家具_圣蒂斯堡官网 | 冷水机-工业冷水机-冷水机组-欧科隆品牌保障 | 金属雕花板_厂家直销_价格低-山东慧诚建筑材料有限公司 | 黄石东方妇产医院_黄石妇科医院哪家好_黄石无痛人流医院 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 心得体会网_心得体会格式范文模板 | 机房监控|动环监控|动力环境监控系统方案产品定制厂家 - 迈世OMARA | 阿尔法-MDR2000无转子硫化仪-STM566 SATRA拉力试验机-青岛阿尔法仪器有限公司 | 垃圾压缩设备_垃圾处理设备_智能移动式垃圾压缩设备--山东明莱环保设备有限公司 | 诺冠气动元件,诺冠电磁阀,海隆防爆阀,norgren气缸-山东锦隆自动化科技有限公司 | 无锡网站建设_小程序制作_网站设计公司_无锡网络公司_网站制作 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 地脚螺栓_材质_标准-永年县德联地脚螺栓厂家 | 抖音短视频运营_企业网站建设_网络推广_全网自媒体营销-东莞市凌天信息科技有限公司 | 小学教案模板_中学教师优秀教案_高中教学设计模板_教育巴巴 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 洗砂机械-球磨制砂机-洗沙制砂机械设备_青州冠诚重工机械有限公司 | 不锈钢水管-不锈钢燃气管-卫生级不锈钢管件-不锈钢食品级水管-广东双兴新材料集团有限公司 | 中药超微粉碎机(中药细胞级微粉碎)-百科 |