加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

详解cookie验证的php应用的一种SSO办理步伐

发布时间:2021-03-13 22:35:13 所属栏目:编程 来源:网络整理
导读:详解cookie验证的php应用的一种SSO办理步伐 克日,项目中必要接入一个“年久失修”的,因为体系已经建树多年,而且是信息中心本身的人通过某些器材弄出来的,并且是本人未真正打仗过的PHP写的,并且跟我们的体系不在统一处事器上也就是存在跨域的题目,想通

详解cookie验证的php应用的一种SSO办理步伐

克日,项目中必要接入一个“年久失修”的,因为体系已经建树多年,而且是信息中心本身的人通过某些器材弄出来的,并且是本人未真正打仗过的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文件

$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文件,搞定!

总结

,对付必要说明别人的对象才气搞定的工作,必然不能过于烦躁,要细心,相识道理,才气事半功倍。

若有疑问请留言可能到本站社区交换接头,感激阅读,但愿能辅佐到各人,感谢各人对本站的支持!

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读