PHP安全-跟蹤數(shù)據(jù)
跟蹤數(shù)據(jù)
作為一個(gè)有安全意識(shí)的開發(fā)者,最重要的一件事就是隨時(shí)跟蹤數(shù)據(jù)。不只是要知道它是什么和它在哪里,還要知道它從哪里來,要到哪里去。有時(shí)候要做到這些是困難的,特別是當(dāng)你對(duì)WEB的運(yùn)做原理沒有深入理解時(shí)。這也就是為什么盡管有些開發(fā)者在其它開發(fā)環(huán)境中很有經(jīng)驗(yàn),但他對(duì)WEB不是很有經(jīng)驗(yàn)時(shí),經(jīng)常會(huì)犯錯(cuò)并制造安全漏洞。
大多數(shù)人在讀取EMAIL時(shí),一般不會(huì)被題為'Re: Hello'之類的垃圾郵件所欺騙,因?yàn)樗麄冎溃@個(gè)看起來像回復(fù)的主題是能被偽造的。因此,這封郵件不一定是對(duì)前一封主題為'Hello.'的郵件的回復(fù)。簡(jiǎn)而言之,人們知道不能對(duì)這個(gè)主題不能太信任。但是很少有人意識(shí)到發(fā)件人地址也能被偽造,他們錯(cuò)誤地認(rèn)為它能可靠地顯示這個(gè)EMAIL的來源。
Web也非常類似,我想教給大家的其中一點(diǎn)是如何區(qū)分可信的和不可信的數(shù)據(jù)。做到這一點(diǎn)常常是不容易的,盲目的猜測(cè)并不是辦法。
PHP通過超級(jí)全局?jǐn)?shù)組如$_GET, $_POST, 及$_COOKIE清楚地表示了用戶數(shù)據(jù)的來源。一個(gè)嚴(yán)格的命名體系能保證你在程序代碼的任何部分知道所有數(shù)據(jù)的來源,這也是我一直所示范和強(qiáng)調(diào)的。
知道數(shù)據(jù)在哪里進(jìn)入你的程序是極為重要的,同時(shí)知道數(shù)據(jù)在哪里離開你的程序也很重要。例如,當(dāng)你使用echo指令時(shí),你是在向客戶端發(fā)送數(shù)據(jù);當(dāng)你使用mysql_query時(shí),你是在向MySQL數(shù)據(jù)庫(kù)發(fā)送數(shù)據(jù)(盡管你的目的可能是取數(shù)據(jù))。
在我審核PHP代碼是否有安全漏洞時(shí),我主要檢查代碼中與外部系統(tǒng)交互的部分。這部分代碼很有可能包含安全漏洞,因此,在開發(fā)與代碼檢查時(shí)必須要加以特別仔細(xì)的注意。
相關(guān)文章:
1. 在Android中使用WebSocket實(shí)現(xiàn)消息通信的方法詳解2. 淺談python出錯(cuò)時(shí)traceback的解讀3. Python importlib動(dòng)態(tài)導(dǎo)入模塊實(shí)現(xiàn)代碼4. python matplotlib:plt.scatter() 大小和顏色參數(shù)詳解5. windows服務(wù)器使用IIS時(shí)thinkphp搜索中文無(wú)效問題6. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向7. Nginx+php配置文件及原理解析8. 利用promise及參數(shù)解構(gòu)封裝ajax請(qǐng)求的方法9. .NET中l(wèi)ambda表達(dá)式合并問題及解決方法10. JSP數(shù)據(jù)交互實(shí)現(xiàn)過程解析
