新聞中心
關(guān)于PHP的安全問(wèn)題,一直是程序員們探討的話題。如何能夠保證程序的安全性,決定了帷幕代碼質(zhì)量的高低。說(shuō)實(shí)話如果一個(gè)網(wǎng)站的前臺(tái)都是注入漏洞,那么憑經(jīng)驗(yàn),PHP***密碼進(jìn)后臺(tái)的幾率基本上是***。#t#

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信平臺(tái)小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了千陽(yáng)免費(fèi)建站歡迎大家使用!
可是有的人說(shuō)對(duì)PHP的站如果是GPC魔術(shù)轉(zhuǎn)換開(kāi)啟,就會(huì)對(duì)特殊符號(hào)轉(zhuǎn)義,就徹底杜絕了PHP注入。其實(shí)說(shuō)這話的人沒(méi)有好好想過(guò),更沒(méi)有嘗試過(guò)用***密碼進(jìn)PHP的后臺(tái)。
其實(shí)GPC魔術(shù)轉(zhuǎn)換是否開(kāi)啟對(duì)用PHP***密碼進(jìn)后臺(tái)一點(diǎn)影響也沒(méi)有。如果你用這樣的***密碼'or'='or',當(dāng)然進(jìn)不去,理由是GPC開(kāi)啟的時(shí)候單引號(hào)會(huì)被轉(zhuǎn)換。PHP注入時(shí)我常用的PHP***密碼是:'or 1=1/*.
那我們分析一下為什么這可以進(jìn)后臺(tái)。如果sql語(yǔ)句這樣寫(xiě):"SELECT * FROM admin where name='".$_POST['name']."'andpassword='".$_POST['password']."'",那我們?cè)趲ぬ?hào)處輸入***密碼'or 1=1/*,密碼隨便輸,sql語(yǔ)句就成了select * from admin where name='’or 1=1/*' and password='任意字符'。/*為mysql的注釋符,這樣后面的東西就都被注釋掉了,也就是為什么密碼隨便輸?shù)脑颉?/p>
假設(shè)GPC轉(zhuǎn)換沒(méi)有開(kāi)啟,那么請(qǐng)看:where name='’or 1=1(*/后面的東西被注釋掉了),name='’的邏輯值為假,而后面的1=1邏輯值則為真,對(duì)于整體就成了假 or 真,最終的邏輯值還是真,就進(jìn)后臺(tái)了。
那么如果GPC轉(zhuǎn)換開(kāi)啟了,就對(duì)單引號(hào)進(jìn)行了轉(zhuǎn)換。語(yǔ)句就變成了where name='\’or 1=1,在看一下和剛才有什么區(qū)別,無(wú)非是多了個(gè)\。name='\'與name=''的邏輯值一樣,都為假,那1=1為真,總的sql語(yǔ)句的邏輯值不還是真嗎?那有進(jìn)不去后臺(tái)的理由嗎?
所以總的來(lái)說(shuō),PHP***密碼可以這樣寫(xiě):'or 1=1/*,而GPC轉(zhuǎn)換是否開(kāi)啟對(duì)它沒(méi)有任何影響!所以請(qǐng)改變你的想法:存在字符型注入的php網(wǎng)站是可以用***密碼'or 1=1/*的
當(dāng)前題目:PHP萬(wàn)能密碼的實(shí)際作用分析
文章URL:http://www.5511xx.com/article/dpseopg.html


咨詢
建站咨詢
