国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

請注意PHP程序里的敏感信息

2020-03-22 17:59:46
字體:
來源:轉載
供稿:網友
  • 何為敏感信息?簡單點來說就是你不想讓別人知道的信息,比如說數據庫的地址,用戶名,密碼等等,此類信息往往知道的人越少越好。

    通常,PHP程序里的配置文件大致如下所示:


    <?phpreturn array(    'database' => array(        'host'     => '192.168.0.1',        'user'     => 'administrator',        'password' => 'e1bfd762321e409cee4ac0b6e841963c',    ),);?>

    有時候出于某些原因,比如說代碼審查,亦或者合作開發等等,第三方需要獲取代碼版本倉庫的讀權限,一旦授權,數據庫的地址,用戶名,密碼等敏感信息就暴露了。當然也可以不在代碼版本倉庫里保存配置文件,取而代之是撰寫文檔進行說明,但我不喜歡這樣的方法,因為如此一來,代碼本身是不完整的。

    如何解決此類問題呢?最直接的方法是把敏感信息從代碼中拿掉,換個地方保存。具體保存到哪里呢?有很多選擇,比如說通過nginx的fastcgi_param來設置:

    fastcgi_param DATABASE_HOST 192.168.0.1;fastcgi_param DATABASE_USER administrator;fastcgi_param DATABASE_PASSWORD e1bfd762321e409cee4ac0b6e841963c;

    經過這樣的映射后,我們的代碼就不會直接包含敏感信息了:


    <?phpreturn array(    'database' => array(        'host'     => $_SERVER['DATABASE_HOST'],        'user'     => $_SERVER['DATABASE_USERNAME'],        'password' => $_SERVER['DATABASE_PASSWORD'],    ),);?>

    此外,還可以通過php-fpm的env指令來設置:

    env[DATABASE_HOST] = 192.168.0.1env[DATABASE_USERNAME] = administratorenv[DATABASE_PASSWORD] = e1bfd762321e409cee4ac0b6e841963c

    需要說明的一點是,這個設置必須放在主配置文件php-fpm.conf里,不能放到include指令設置的子配置文件里,否則會報錯:「Array are not allowed in the global section」;另外一點,雖然是通過env設置的,但結果還是在$_SERVER里,而不是$_ENV。

    說明: @Laruence 提醒了我,如果配置信息通過nginx的fastcgi_param來設置的話,當nginx和php交互時,會帶來大量的數據傳輸(如此看來通過php-fpm的env來設置相對更有優勢),鳥哥建議使用獨立的擴展來搞定,比如「hidef」。

    通過nginx和php-fpm配置文件來解決問題的話,有一個缺點,僅對Web有效,如果通過命令行來運行,那么無法在$_SERVER里獲取相關信息,不過這不算什么難事兒,只要寫個公共的腳本正則匹配一下nginx或者php-fpm的配置文件,就可以動態的把這些信息映射到命令行環境,具體怎么搞就留給大家自己操作吧。

    代碼干凈了,剩下的工作就是如何確保nginx或php-fpm配置文件的安全了,不過和代碼比起來,nginx或php-fpm配置文件并不需要很多人有權限,所以相對更容易管理。


    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 嘉兴市| 张掖市| 鄂州市| 甘南县| 五指山市| 梅河口市| 横峰县| 阿鲁科尔沁旗| 怀来县| 嘉兴市| 宜宾县| 靖西县| 龙州县| 勃利县| 无棣县| 集贤县| 宁乡县| 呼玛县| 德庆县| 阿拉善右旗| 吉安市| 天镇县| 石家庄市| 沁阳市| 永寿县| 长丰县| 石阡县| 江口县| 左权县| 东源县| 鄂托克前旗| 美姑县| 玉树县| 贡山| 逊克县| 土默特左旗| 乐亭县| 牟定县| 保靖县| 木兰县| 崇阳县|