PHP安全-跟蹤數(shù)據(jù)
跟蹤數(shù)據(jù)
作為一個有安全意識的開發(fā)者,最重要的一件事就是隨時跟蹤數(shù)據(jù)。不只是要知道它是什么和它在哪里,還要知道它從哪里來,要到哪里去。有時候要做到這些是困難的,特別是當(dāng)你對WEB的運(yùn)做原理沒有深入理解時。這也就是為什么盡管有些開發(fā)者在其它開發(fā)環(huán)境中很有經(jīng)驗,但他對WEB不是很有經(jīng)驗時,經(jīng)常會犯錯并制造安全漏洞。
大多數(shù)人在讀取EMAIL時,一般不會被題為'Re: Hello'之類的垃圾郵件所欺騙,因為他們知道,這個看起來像回復(fù)的主題是能被偽造的。因此,這封郵件不一定是對前一封主題為'Hello.'的郵件的回復(fù)。簡而言之,人們知道不能對這個主題不能太信任。但是很少有人意識到發(fā)件人地址也能被偽造,他們錯誤地認(rèn)為它能可靠地顯示這個EMAIL的來源。
Web也非常類似,我想教給大家的其中一點(diǎn)是如何區(qū)分可信的和不可信的數(shù)據(jù)。做到這一點(diǎn)常常是不容易的,盲目的猜測并不是辦法。
PHP通過超級全局?jǐn)?shù)組如$_GET, $_POST, 及$_COOKIE清楚地表示了用戶數(shù)據(jù)的來源。一個嚴(yán)格的命名體系能保證你在程序代碼的任何部分知道所有數(shù)據(jù)的來源,這也是我一直所示范和強(qiáng)調(diào)的。
知道數(shù)據(jù)在哪里進(jìn)入你的程序是極為重要的,同時知道數(shù)據(jù)在哪里離開你的程序也很重要。例如,當(dāng)你使用echo指令時,你是在向客戶端發(fā)送數(shù)據(jù);當(dāng)你使用mysql_query時,你是在向MySQL數(shù)據(jù)庫發(fā)送數(shù)據(jù)(盡管你的目的可能是取數(shù)據(jù))。
在我審核PHP代碼是否有安全漏洞時,我主要檢查代碼中與外部系統(tǒng)交互的部分。這部分代碼很有可能包含安全漏洞,因此,在開發(fā)與代碼檢查時必須要加以特別仔細(xì)的注意。
相關(guān)文章:
1. css代碼優(yōu)化的12個技巧2. ASP實(shí)現(xiàn)加法驗證碼3. PHP循環(huán)與分支知識點(diǎn)梳理4. 讀大數(shù)據(jù)量的XML文件的讀取問題5. ASP.NET MVC使用異步Action的方法6. asp批量添加修改刪除操作示例代碼7. 低版本IE正常運(yùn)行HTML5+CSS3網(wǎng)站的3種解決方案8. HTML5 Canvas繪制圖形從入門到精通9. ASP.NET MVC通過勾選checkbox更改select的內(nèi)容10. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)
