Heim > php教程 > php手册 > cookie防止仿造安全讲解

cookie防止仿造安全讲解

WBOY
Freigeben: 2016-06-13 10:13:11
Original
897 Leute haben es durchsucht

以前我们刚写PHP的时候,做后台,需要管理员身份认证。一般用COOKIE这么做的,特别是刚接触PHP的PHP爱好者:
admin/login.php

if(用户名&&密码正确) {
     
setcookie('admin',1,time()+36400
);
     echo 
'登录成功'
;
}


if($_COOKIE[admin] == 1) {
    echo 
'有权限'
;
}


但是这样会造成很大的安全隐患,很多浏览器可以直接修改COOKIE,或者直接在系统里修改。

只要伪造cookie,那么管理权限就拿到了

为了安全,这么做:

if(用户名&&密码正确) {
     
setcookie('userid',用户在系统中的ID,time()+36400
);
     
setcookie('userpass',用户在系统中的32位md5密码,time()+36400
);
     echo 
'登录成功'
;
}


判断权限的时候这么做:

if($_COOKIE[userid]) {
$query mysql_query(select user table where userid '$_COOKIE[userid]' and userpass '$_COOKIE[userpass]'
);
$row mysql_fetch_array($query
);
if(
$row[rank]  1
) {
    echo 
'没有权限'
;
}
}


这样伪造cookie就没有任何作用了

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage