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

首頁 > 編程 > PHP > 正文

PHP安全編碼規(guī)范之安全配置篇

2020-03-22 19:14:16
字體:
供稿:網(wǎng)友
  • 因為配置不當引發(fā)的安全問題是屢見不鮮的,通過一系列的安全配置,可以很好的解決一些安全隱患,從而為系統(tǒng)增加安全系數(shù)。但是在開發(fā)過程中,因為需求的改變和編程的習慣可能會更改一些配置同時帶來安全隱患。在這種情況下,需要更加的了解配置帶來的安全隱患,也就是漏洞的產(chǎn)生原理。同時需要了解在打開一些配置安全隱患之后,該如何通過一些其他手段解決安全問題是我們重點需要討論的問題。

    0×01注冊html' target='_blank'>全局變量帶來的安全隱患

    register_globals這個是開啟全局注冊變量功能,為On是開啟,Off是關(guān)閉。在開啟后帶來的安全隱患是巨大的,所以建議關(guān)閉。如果在需求上需要開啟,在02里會有具體介紹該如何防御。

    配置規(guī)范:register_globals要設(shè)置為off,在php4.2.0后默認為off,如果為on,需要為每個變量初始化

    功能描述:get,post,cookie等變量直接被注冊為全局變量,比如表單的username,程序中使用$username就能獲取到值,不需$_POST來獲取值

    安全隱患樣例:

    1-1

    這里如果沒有通過cooke認證,那$authorized將一直為假,就無法被認證,但是如果register_globals為on,那么我們在url里可以修改get參數(shù)讓$authorized注冊為全局變量,并修改它的值為真,比如http://xxx/test.php?authorized=1,這樣就繞過了認證。

    0×02初始化變量和配置預(yù)警提高安全系數(shù)

    如果有需求要開啟注冊全局變量,那我們該如何防御呢?這里我們介紹兩個辦法,一個是初始化變量,和配置最高預(yù)警信息,下面讓我們看看具體如何操作。在這里我們初始化了$authorized的值為假,即使傳入了真也不會改變

    比如:

    1-2

    所以我們只要初始化$authorized的值,就不會出現(xiàn)繞過的問題,但是有的時候會忘記初始化變量,沒關(guān)系,可以配置預(yù)警模式,如果有未初始化的,就會預(yù)警,可以在php.ini中設(shè)置 error_reporting 設(shè)置為 E_ALL|E_STRICT最高級別,這樣如果哪個變量未初始化,報錯就會預(yù)警。

    0×03 配置不顯示錯誤信息,保存錯誤信息到本地

    黑客在滲透過程中,因為錯誤信息的暴露,給黑客提供了很大的利用便利條件,所以在開發(fā)過程中,我們可以為了編程的方便,需要開啟錯誤信息提示到瀏覽器,但是在程序上線后,我們一定要關(guān)閉錯誤信息提示,這里提供一種一舉兩得的方式,關(guān)閉瀏覽器顯示錯誤提示,記錄錯誤提示到本地日志中。這些設(shè)置可以在php.ini中設(shè)置,也可以在php程序中設(shè)置。

    1-3

    0×04 權(quán)限問題-能不給的權(quán)限不要給

    關(guān)于權(quán)限問題始終是一個容易被忽略的問題,程序員往往在乎程序功能上是否實現(xiàn)了,的確容易在功能上過大的給予一些權(quán)限照成一些安全隱患。比如我們在上傳過程中,可能只需要寫權(quán)限和執(zhí)行權(quán)限,但是我們又多給了個讀權(quán)限。即便我們做了過濾,即便我們做了混淆,但是安全不是絕對的,一個環(huán)節(jié)的疏忽就容易照成不可挽回的損失。下面讓我們看一個案例

    案例分析:

    1-4

    這是一個上傳功能,這里的功能需求只需要寫權(quán)限和執(zhí)行權(quán)限,可以看到,只用了getimagesize做了圖片認證,這里只需要改下文件類型就可以簡單繞過上傳一個php的木馬,但是同時對上傳的文件名重新命名成了隨機名,所以攻擊者不知道源碼很難逆向文件名來解析php木馬。

    但是我們又多給了讀取權(quán)限,會有什么樣的安全隱患呢?比如這個程序里有這樣一個功能

    1-5

    這里是一個ping的功能,即使做了一些過濾,但是因為過濾不全,沒有過濾&,{,}等符號,

    1-6

    可以這樣繞過從這張圖片可以看到,我們本來不需要讀權(quán)限,但是因為給了讀權(quán)限,讓攻擊者在這里可以讀到文件名甚至其他一些操作,從這兩點的結(jié)合,攻擊者可以很輕易獲取到程序的權(quán)限從而帶來很嚴重的信息泄露等問題。所以回到我們討論的問題,最小權(quán)限問題,這里在需求上完全不需要讀權(quán)限,但是因為讀權(quán)限的開啟,照成了嚴重的損失,所以,能不給的權(quán)限不要給,給過的權(quán)限,一定要做好過濾等防御措施。

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 汤原县| 襄汾县| 全州县| 普洱| 曲沃县| 祁门县| 宣城市| 永川市| 安福县| 江永县| 昂仁县| 林甸县| 肇源县| 临朐县| 会同县| 荆州市| 建阳市| 光泽县| 巴林左旗| 湖北省| 道孚县| 宕昌县| 百色市| 普陀区| 息烽县| 峨边| 宾阳县| 扎赉特旗| 沂南县| 拉萨市| 海晏县| 邵东县| 尉犁县| 安福县| 盐亭县| 普安县| 芜湖市| 大理市| 嘉鱼县| 鄱阳县| 什邡市|