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. 淺談XML Schema中的elementFormDefault屬性2. jsp學(xué)習(xí)之scriptlet的使用方法詳解3. ASP.NET MVC獲取多級(jí)類別組合下的產(chǎn)品4. ASP.NET MVC實(shí)現(xiàn)橫向展示購(gòu)物車5. ThinkPHP5 通過ajax插入圖片并實(shí)時(shí)顯示(完整代碼)6. Docker 容器健康檢查機(jī)制7. 解決python 輸出到csv 出現(xiàn)多空行的情況8. Python利用ROI進(jìn)行圖像合成的問題小結(jié)9. python 編寫輸出到csv的操作10. Python還能這么玩之只用30行代碼從excel提取個(gè)人值班表
