濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 詳解cookie驗(yàn)證的php應(yīng)用的一種SSO解決辦法

詳解cookie驗(yàn)證的php應(yīng)用的一種SSO解決辦法

熱門標(biāo)簽:周口網(wǎng)絡(luò)回?fù)芡夂粝到y(tǒng) 網(wǎng)絡(luò)電話400申請(qǐng) 外呼系統(tǒng)人工客服 百度地圖標(biāo)注類型是酒店 福建高頻外呼防封系統(tǒng)哪家好 400電話申請(qǐng)辦理 商丘外呼系統(tǒng)好處 全國(guó)各省地圖標(biāo)注點(diǎn) 隨州銷售電銷機(jī)器人公司

詳解cookie驗(yàn)證的php應(yīng)用的一種SSO解決辦法

近日,項(xiàng)目中需要接入一個(gè)“年久失修”的PHP應(yīng)用,由于系統(tǒng)已經(jīng)建設(shè)多年,并且是信息中心自己的人通過(guò)某些工具弄出來(lái)的,而且是本人未真正接觸過(guò)的PHP寫(xiě)的,而且跟我們的系統(tǒng)不在同一服務(wù)器上也就是存在跨域的問(wèn)題,想通過(guò)客戶端模擬登錄的方式來(lái)實(shí)現(xiàn),但是總是不成功。

沒(méi)辦法,只好想盡一切辦法查看頁(yè)面源代碼,然后,找服務(wù)器的php文件,分析。

由于對(duì)php不熟悉,加上沒(méi)有仔細(xì)看,因此,對(duì)于找到的登錄頁(yè)面的php文件,一開(kāi)始只是有一個(gè)初步的了解,基本上確定是通過(guò)cookie來(lái)實(shí)現(xiàn),實(shí)際上真正的驗(yàn)證機(jī)制還有如何驗(yàn)證都沒(méi)有了解清楚,急著就開(kāi)始新的征程,結(jié)果屢試屢敗。
先說(shuō)一下一開(kāi)始的實(shí)現(xiàn)方式:

最開(kāi)始

系統(tǒng)中添加一個(gè)iframe,試圖從本地應(yīng)用中給iframe中的遠(yuǎn)程系統(tǒng)的指定頁(yè)面的用戶名、密碼賦值,并模擬“登錄”按鈕的單擊事件。這個(gè)是必定失敗的,因?yàn)?,跨域了,js一般不能跨域遠(yuǎn)程操作別人的東西。

然后

本地form的遠(yuǎn)程action。在本地的頁(yè)面中新增一個(gè)form,此form中添加上與目標(biāo)系統(tǒng)一樣的登錄界面的內(nèi)容(就是用戶名、密碼輸入框,特別說(shuō)明的是此應(yīng)用尚沒(méi)有驗(yàn)證碼),然后在頁(yè)面加載時(shí),便給form中的元素賦值,點(diǎn)擊本地頁(yè)面的“單點(diǎn)登錄”時(shí),提交此form,試圖按照java登錄驗(yàn)證的模式來(lái)實(shí)現(xiàn)此php系統(tǒng)的登錄驗(yàn)證。但是,依然,無(wú)法正常登錄。

接下來(lái)

仔細(xì)分析登錄的php文件。發(fā)現(xiàn)驗(yàn)證過(guò)程其實(shí)是通過(guò)cookie來(lái)實(shí)現(xiàn)的,依稀記得早期的很多BBS都是這種方式。找相關(guān)人員通過(guò)各種途徑,大體了解了登錄驗(yàn)證的機(jī)制及過(guò)程,原來(lái)是在登錄之后,將信息寫(xiě)入cookie,每個(gè)頁(yè)面都會(huì)引入一個(gè)通過(guò)讀取cookie并根據(jù)cookie的內(nèi)容進(jìn)行判斷的php文件。這樣了解了驗(yàn)證機(jī)制。于是,想要通過(guò)跨域?qū)慶ookie的方式來(lái)實(shí)現(xiàn),由于本身的應(yīng)用是portal應(yīng)用,因此,寫(xiě)跨域應(yīng)用也費(fèi)了一些勁,最終,寫(xiě)本地cookie沒(méi)問(wèn)題,但是跨域的cookie,連想都不用想,生成不了。

最后

分析php的登錄界面,發(fā)現(xiàn)之所以每次定向的登錄php文件,在進(jìn)行驗(yàn)證的時(shí)候,都有一個(gè)if(isset($submit) and $submit=="登錄")這樣的判斷,不是特別明白這句是什么意思,isset貌似是判斷參數(shù)是否為空,而后面則判斷參數(shù)值為“登錄”!由于本人php水平太低,不知道這樣的判斷有何作用,是否能夠執(zhí)行。最終,只能跟客戶討論是否可以通過(guò)在服務(wù)端新增一個(gè)專門用于接收單點(diǎn)登錄需要的php文件。只是把原來(lái)的登錄用的php文件做了修改,去掉這些判斷,并且原來(lái)的登錄在驗(yàn)證之后,跳轉(zhuǎn)到的目標(biāo)頁(yè)面是通過(guò)從地址欄獲取的信息來(lái)進(jìn)行跳轉(zhuǎn)的,因此,對(duì)此部分內(nèi)容也進(jìn)行了調(diào)增。這樣,最終形成了以下的ssologon.php文件

?php require($DOCUMENT_ROOT."/db.inc"); 
 
    $dbh=db_connect(); 
    if(!$dbh) die("mysql connect failed. please wait to retry..."); 
    $sql="select * from user_code where ((user_name='$username') and (user_password='$password'))";            
    $result=mysql_query($sql,$dbh); 
    if(!$result) die("mysql system error, please connact with admin"); 
    $num=mysql_num_rows($result);       
    if($num1){ //not such a man 
      db_close($dbh); 
      echo "$header 姓名或者密碼錯(cuò)誤 $footer"; 
      exit;   
    } 
    else{ //驗(yàn)證通過(guò),設(shè)置cookie 
      $row=mysql_fetch_object($result); 
      db_close($dbh); 
      $temp=$row->user_id."*".$row->user_cnname."*".$row->user_password;            
      $ret=setcookie("WEBOAUSER","$temp"); 
      echo "meta http-equiv='refresh' content='0;url=http://192.168.1.4/uuu/default.php'>"; 
       
      exit;                 
    } 
?> 

然后,把本地應(yīng)用中的form的action指定為此php文件,搞定!

總結(jié),對(duì)于需要分析別人的東西才能搞定的事情,一定不能過(guò)于焦躁,要仔細(xì),了解原理,才能事半功倍。

如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

您可能感興趣的文章:
  • PHP與JavaScript針對(duì)Cookie的讀寫(xiě)、交互操作方法詳解
  • PHP利用Cookie設(shè)置用戶30分鐘未操作自動(dòng)退出功能
  • PHP中Cookie的使用詳解(簡(jiǎn)單易懂)
  • php及codeigniter使用session-cookie的方法(詳解)
  • PHP如何讀取由JavaScript設(shè)置的Cookie
  • PHP設(shè)置Cookie的HTTPONLY屬性方法
  • php cookie用戶登錄的詳解及實(shí)例代碼
  • php頁(yè)面跳轉(zhuǎn)session cookie丟失導(dǎo)致不能登錄等問(wèn)題的解決方法
  • php cookie 詳解使用實(shí)例
  • PHP Cookie學(xué)習(xí)筆記
  • PHP中cookie知識(shí)點(diǎn)學(xué)習(xí)

標(biāo)簽:樂(lè)山 十堰 定西 六安 佛山 迪慶 南寧 海南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解cookie驗(yàn)證的php應(yīng)用的一種SSO解決辦法》,本文關(guān)鍵詞  詳解,cookie,驗(yàn)證,的,php,應(yīng),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解cookie驗(yàn)證的php應(yīng)用的一種SSO解決辦法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于詳解cookie驗(yàn)證的php應(yīng)用的一種SSO解決辦法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    沈丘县| 汝阳县| 阿克苏市| 浠水县| 桃江县| 新泰市| 铅山县| 高雄市| 江津市| 托克托县| 德令哈市| 泰和县| 铜川市| 平和县| 兴文县| 方山县| 华容县| 兰坪| 浦东新区| 习水县| 八宿县| 山丹县| 环江| 五台县| 高青县| 平果县| 察哈| 弥渡县| 靖西县| 枣庄市| 晋中市| 石楼县| 南华县| 镇赉县| 永顺县| 台中县| 靖江市| 囊谦县| 沿河| 教育| 客服|