阻止访问php文件功能

时间:2018-04-10 14:43:03

标签: php

我制作了一个充当待办事项列表的PHP脚本。在管理员端(只是admin.php),有一个显示表,这个表从mysql中的待办事项列表中获取每个记录,然后在每个记录旁边放置一个删除按钮。

Click Here For Image

每个删除按钮都有一个锚标记,其ID基于mysql中的特定关联行。因此,当有人点击删除按钮时,网址会转到/remove.php?id=ROWID

问题是有人可以从任何具有正确rowid的页面输入该URL,他们可以删除数据。在remove.php上,我使用$_GET方法来获取ROWID。我可以制作一个表格并拥有该POST,我在网站上有其他功能。但即使是那些人,如果有人输入add.php,他们仍然可以访问php脚本中的添加功能。

我尝试使用session_start()启动会话;在admin.php页面中(最终将仅锁定到具有管理员权限的经过身份验证的用户),但如果有人知道该链接,即使没有在会话中,他们仍然可以转到/remove.php?id=ROWID,或者说明来自admin.php的会话

我错过了什么吗?有没有办法阻止对经过身份验证的用户或会话内的用户访问remove.php?

1 个答案:

答案 0 :(得分:0)

感谢上述帖子,

我用过:

if (isset($_SESSION['ID'])){
    code goes here for if they are authenticated
}else{
    die("You're not logged in as admin"); 
}

这将在page1.php和page2.php上启动会话,检查会话是否从page1启动。如果没有,将显示错误(骰子)消息。

如果您希望基于一段时间使用户的会话到期,请使用以下示例: http://thisinterestsme.com/expire-php-sessions/