PHP安全-跟蹤數(shù)據(jù)
跟蹤數(shù)據(jù)
作為一個有安全意識的開發(fā)者,最重要的一件事就是隨時跟蹤數(shù)據(jù)。不只是要知道它是什么和它在哪里,還要知道它從哪里來,要到哪里去。有時候要做到這些是困難的,特別是當(dāng)你對WEB的運做原理沒有深入理解時。這也就是為什么盡管有些開發(fā)者在其它開發(fā)環(huán)境中很有經(jīng)驗,但他對WEB不是很有經(jīng)驗時,經(jīng)常會犯錯并制造安全漏洞。
大多數(shù)人在讀取EMAIL時,一般不會被題為'Re: Hello'之類的垃圾郵件所欺騙,因為他們知道,這個看起來像回復(fù)的主題是能被偽造的。因此,這封郵件不一定是對前一封主題為'Hello.'的郵件的回復(fù)。簡而言之,人們知道不能對這個主題不能太信任。但是很少有人意識到發(fā)件人地址也能被偽造,他們錯誤地認(rèn)為它能可靠地顯示這個EMAIL的來源。
Web也非常類似,我想教給大家的其中一點是如何區(qū)分可信的和不可信的數(shù)據(jù)。做到這一點常常是不容易的,盲目的猜測并不是辦法。
PHP通過超級全局?jǐn)?shù)組如$_GET, $_POST, 及$_COOKIE清楚地表示了用戶數(shù)據(jù)的來源。一個嚴(yán)格的命名體系能保證你在程序代碼的任何部分知道所有數(shù)據(jù)的來源,這也是我一直所示范和強調(diào)的。
知道數(shù)據(jù)在哪里進入你的程序是極為重要的,同時知道數(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. 使用Docker的NFS-Ganesha鏡像搭建nfs服務(wù)器的詳細(xì)過程2. Django使用HTTP協(xié)議向服務(wù)器傳參方式小結(jié)3. 刪除docker里建立容器的操作方法4. VMware中如何安裝Ubuntu5. Docker 部署 Prometheus的安裝詳細(xì)教程6. IntelliJ IDEA導(dǎo)入jar包的方法7. IntelliJ IDEA恢復(fù)刪除文件的方法8. 使用 kind 和 Docker 啟動本地的 Kubernetes環(huán)境9. docker /var/lib/docker/aufs/mnt 目錄清理方法10. IntelliJ IDEA配置Tomcat服務(wù)器的方法
