仲介交易 HTTP://www.aliyun.com/zixun/aggregation/6858.html">SEO診斷 淘寶客 雲主機 技術大廳
作為一個網站站長,尤其是新站站長,有時候為了修改網站的功能、添加網站的特色,就不得不自己寫一些代碼。 在這個過程中,若出現一點錯誤,可能就會給網站帶災難性安全危機。 即使網站原本是由專業開發團隊開發上線的,有較好的安全性,但是在木桶原理的作用下,你添加的那幾行錯誤代碼,完全可以導致整個網站的安全機制土崩瓦解。
現在將EeSafe網站安全聯盟列出幾點使用php架構的網站常出現的代碼級安全問題,希望對站長的修改代碼工作有一定的説明。 大家有什麼疑問,可以到EeSafe網路安全中心交流,EeSafe期待和大家共同進步
1.現在最常見的php代碼編寫上的安全問題
Php全域變數危害代碼:
很明顯,這是判斷登陸的是否是管理員,很多網站也用這個邏輯判斷其他重要的條件。
看上去這段代碼很正確,但其實有個致命的錯誤,它假定$isadmin在沒賦值的時候是空值,但由於php語言為了使php代碼訪問使用者的輸入盡可能容易,php把輸入資料作為全域變數來處理。 所以攻擊者可以創建任意全域變數並賦值。
如何避免這樣最容易被會略的問題,如果你網站使用的是PHP程式開發,如果你已經這樣做了,並且web應用程式變數很多的話,最節省效率的辦法就是修改php的track_vars選項。
2.網站雙條件認證安全問題
判斷使用者名和密碼,先判斷是否為空,然後從資料資料庫找同時符合條件的資料。
如果採用這樣的邏輯將直接導致sql注入。
如果你要增加或修改這樣的功能,程式邏輯應該是:首先,找到資料庫中使用者名符合的資料(當然使用者名在資料庫中必須是唯一的),然後查看這條資料中對應的密碼是否和要驗證的密碼相同,這樣就避免雙認證問題。
3.用使用者名去判斷使用者許可權
很多網站都有這樣的問題,比如
看上去這個也沒有邏輯問題,但為什麼還是存在安全性漏洞?是因為很多資料庫對特殊字元都不處理,比如mysql這樣的資料庫,如果輸入的字元在ASCII碼129~255範圍內,是不做處理的,也就是如果註冊使用者使用「admin+ 特殊字元」時,他也同樣能夠成功註冊一個名為admin的使用者,安全機制消失了。 歡迎交流探討。
EeSafe網站安全聯盟原創文章
轉載請以連結形式注明原文位址:HTTP://www.eesafe.com/bbs/thread-1309-1-1.html