我如何在PHP中保护cookie?

时间:2017-01-17 23:42:42

标签: php cookies

今天我完成了我的项目编程。 现在我想在我的代码中找到一些问题。 我意识到,当我想要更改我的信息(如用户)时,我可以从篡改数据编辑我的用户ID(ad-don更改标题数据),我可以通过篡改日期更改我的级别(从用户到管理员):/ 我用这个代码设置cookie

setcookie('level',$login['level'],time()+120*120*48);
setcookie('username',$login['username'],time()+120*120*48);
setcookie('uid',$login['uid'],time()+120*120*48);

我使用$ _COOKIE ['uid']当用户尝试添加注释时,数据库只是一个数字(你知道)

我想给你这个代码我用它来启动会话并在每个文件中启动它。

include("cookiesset.php");
ob_start();
session_start();
if($_COOKIE['level'] != 1){
...
}else{
...
}

这是我在标题中的cookie

uid=1; level=1; username=asd; PHPSESSID=ldr48bua487pjmtvohp53tr662; LoginForm=r9imqbnj2csfrmsu50i9kn0q54

好的我怎么能解决它? 我想保护我的网站。

如果没有我想问的解决方案。

1 个答案:

答案 0 :(得分:1)

谢谢大家关于你给我的一切, 我尝试创建一个新的列有一个用户密钥,但它想要更多的时间来创建和编辑项目中的所有文件,我尝试学习SESSION以及我的工作如何找到这个 http://www.w3schools.com/php/php_sessions.asp 它很容易学习,(旧的,我认为这不容易)

现在我用

$_SESSION["level"] = $login['level'];
$_SESSION["username"] = $login['username'];
$_SESSION["uid"] = $login['uid'];

我检查了数据库中的用户名和密码

,这在文件中

ob_start();
session_start();
if($_SESSION['level'] != 1){
...
}else{
...
}

来自篡改数据和其他工具,

PHPSESSID=d4i4itbp8p7ri4juvqd690t9a5

我看到了PHPSESSID。

谢谢你们所有人, 现在一切都很棒,非常感谢@Asfo和@ miken32给我一个很好的建议。

我希望如果我的代码中有任何错误你编辑并帮助我:)

修改

谢谢你的一切 但我意识到当我从PHPSESSID删除(d4i4itbp8p7ri4juvqd690t9a5)我将有“文件路径泄露”错误, 我通过put error_reporting(0)修复它;在session_start()之后;对于谁想要他的剧本没有错误,一切都会好的;)

error_reporting(0);
ob_start();
session_start();
if($_SESSION['level'] != 1){
...
}else{
...
}