久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

詳解cookie驗證的php應用的一種SSO解決辦法

這篇文章主要介紹了詳解cookie驗證的php應用的一種SSO解決辦法的相關資料,希望通過本文能幫助到大家讓大家遇到這種類似問題解決,需要的朋友可以參考下

詳解cookie驗證的php應用的一種SSO解決辦法

近日,項目中需要接入一個“年久失修”的PHP應用,由于系統已經建設多年,并且是信息中心自己的人通過某些工具弄出來的,而且是本人未真正接觸過的PHP寫的,而且跟我們的系統不在同一服務器上也就是存在跨域的問題,想通過客戶端模擬登錄的方式來實現,但是總是不成功。

沒辦法,只好想盡一切辦法查看頁面源代碼,然后,找服務器的php文件,分析。

由于對php不熟悉,加上沒有仔細看,因此,對于找到的登錄頁面的php文件,一開始只是有一個初步的了解,基本上確定是通過cookie來實現,實際上真正的驗證機制還有如何驗證都沒有了解清楚,急著就開始新的征程,結果屢試屢敗。
先說一下一開始的實現方式:

最開始

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

然后

本地form的遠程action。在本地的頁面中新增一個form,此form中添加上與目標系統一樣的登錄界面的內容(就是用戶名、密碼輸入框,特別說明的是此應用尚沒有驗證碼),然后在頁面加載時,便給form中的元素賦值,點擊本地頁面的“單點登錄”時,提交此form,試圖按照java登錄驗證的模式來實現此php系統的登錄驗證。但是,依然,無法正常登錄。

接下來

仔細分析登錄的php文件。發現驗證過程其實是通過cookie來實現的,依稀記得早期的很多BBS都是這種方式。找相關人員通過各種途徑,大體了解了登錄驗證的機制及過程,原來是在登錄之后,將信息寫入cookie,每個頁面都會引入一個通過讀取cookie并根據cookie的內容進行判斷的php文件。這樣了解了驗證機制。于是,想要通過跨域寫cookie的方式來實現,由于本身的應用是portal應用,因此,寫跨域應用也費了一些勁,最終,寫本地cookie沒問題,但是跨域的cookie,連想都不用想,生成不了。

最后

分析php的登錄界面,發現之所以每次定向的登錄php文件,在進行驗證的時候,都有一個if(isset($submit) and $submit=="登錄")這樣的判斷,不是特別明白這句是什么意思,isset貌似是判斷參數是否為空,而后面則判斷參數值為“登錄”!由于本人php水平太低,不知道這樣的判斷有何作用,是否能夠執行。最終,只能跟客戶討論是否可以通過在服務端新增一個專門用于接收單點登錄需要的php文件。只是把原來的登錄用的php文件做了修改,去掉這些判斷,并且原來的登錄在驗證之后,跳轉到的目標頁面是通過從地址欄獲取的信息來進行跳轉的,因此,對此部分內容也進行了調增。這樣,最終形成了以下的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($num<1){ //not such a man 
      db_close($dbh); 
      echo "$header 姓名或者密碼錯誤 $footer"; 
      exit;   
    } 
    else{ //驗證通過,設置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;                 
    } 
?> 

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

總結,對于需要分析別人的東西才能搞定的事情,一定不能過于焦躁,要仔細,了解原理,才能事半功倍。

如有疑問請留言或者到本站社區交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

主站蜘蛛池模板: 精品国产一区二区三区久久久蜜月 | 久久这里有精品 | 欧美日韩在线成人 | 日韩精品久久久 | 日韩中文字幕2019 | 国产中文区二幕区2012 | 一区二区三区在线观看视频 | 天天操夜夜操 | 中文字幕国产精品 | 超碰日韩| 国产精品久久久久久一级毛片 | 日韩蜜桃视频 | 一区二区三区视频 | 一级a爱片久久毛片 | 成人黄色av网址 | 国产激情视频网站 | 日韩2020狼一二三 | 九九热这里只有精品6 | 亚洲一区二区中文字幕 | 久久亚洲天堂 | 在线免费观看日本视频 | 日韩一区在线播放 | 精品国产一区二区三区久久狼黑人 | 午夜一级黄色片 | 亚洲欧美精品久久 | 啪啪免费网 | 欧美中文在线 | www.久久久久久久久久久 | 一区二区三区在线观看视频 | 国产亚洲精品综合一区 | 伦理午夜电影免费观看 | 久久综合一区 | 99自拍视频 | 亚洲福利在线观看 | 国产亚洲一区二区精品 | 日韩不卡在线 | 亚洲一区二区在线免费观看 | 精品91久久 | 精品一区久久 | 欧美日韩国产在线观看 | 一区二区视频在线观看 |