日期:2014-05-17  浏览次数:20534 次

PHP如何正确生成Cookie, 保证按特定路径打开指定的网页?

我有一个图片验证网页verification.php, 就是登录网页. 


PHP code

<?php

if(输入的图片验证码正确 && 生成Cookie)
{跳转到data.php;}
else
{跳转到转到error.htm;}

?>
















还有一个数据网页data.php. 

PHP code

<?php

if(浏览器已经有这个Cookie)
{显示数据;}
else
{跳转到error.htm;}

?>









我一直担心某些用户会直接使用浏览器登录数据页面data.php, 而不先登录到验证网页verification.php.

那么PHP如何在数据网页data.php里, 验证这个专门来自验证网页verification.php生成的Cookie? 注意:不能和其它网站的Cookie或这个网站的其它网页生成的Cookie混淆.

是不是还要用到SHA1验证Cookie?





------解决方案--------------------
你自己定义一个cookie的名称还怕跟别的cookie混淆?

那你就定义一个比较复杂的名称咯,长点没关系
------解决方案--------------------
如果 直接使用浏览器登录数据页面data.php 将不会有 cookie 变量
如果你担心用户伪造 cookie 那么可以在cookie 中放入特殊标志(token)并与服务器端缓存的值进行比对
------解决方案--------------------
我之前的项目都是用的session 在里面存个字段login_flg来辨别登陆状态。
在php中做login_flg 的判断 没有登录的直接做location跳转让他去登陆。
------解决方案--------------------
传个加密数据,只有服务端知道怎么解密,例如把当前时间进行加密,解析为当前时间相差十分钟以内就行,也解决了别人盗取你的数据使用
------解决方案--------------------
探讨

我之前的项目都是用的session 在里面存个字段login_flg来辨别登陆状态。
在php中做login_flg 的判断 没有登录的直接做location跳转让他去登陆。