这是一个安全的PHP管理页面吗?

1 php security administration code-injection

我正在做一个游戏,我为它创建了一个"管理"面板.它的工作原理如下:

admin.php
admin/code1.php
admin/code2.php
Run Code Online (Sandbox Code Playgroud)

admin.php的:

<?php
include("lib.php");
$player = check_user($secret_key, $db);
if($player->rank != "Administrador")
{
header("Location: personagem.php");
exit;
}
include("templates/private_header.php");
head("Admin Panel","adminpanel.png");
startbox();
if(isset($_GET['page']))
{
include("admin/" . $_GET['page'] . ".php");
}
else
{
?>
<A href="admin.php?page=code1">Kill Players</a><br>
<A href="admin.php?page=code2">Heal Players</a><br>

<?php
}
endbox();
include("templates/footer.php");
?>
Run Code Online (Sandbox Code Playgroud)

我想知道我是否容易受到黑客攻击.code1.php和code2.php使用lib.php中包含的自定义查询库,因此无法直接执行它们而不会出现错误.

同样在我的模板中,我有:

if($player->rank == "Administrador")
{
echo "<a href='admin.php'>Admin Panel</a>";
}
Run Code Online (Sandbox Code Playgroud)

所以我可以更快地访问面板.那里也存在风险吗?

请注意,$ player是一个从对查询到表示实际玩家的玩家数据库的查询创建的对象.在我的想法中,破解这个的唯一方法是将表中的"排名"状态更改为"Administrador"我是对的吗?或者我有什么东西可以通过?提前致谢

Thi*_*ter 5

include("admin/" . $_GET['page'] . ".php");
Run Code Online (Sandbox Code Playgroud)

这是一个巨大的安全漏洞.

类似的东西blah.php?page=../../../../etc/passwd%00包括/etc/password当然你也可以用其他文件做这个 - 甚至可能是用户上传的包含PHP代码的一些文件(甚至可能是图像,只要它包含<?php [code]某个地方)

即使只有你是管理员,也不会关闭这样的漏洞并不明智 - 在某些时候你可能会有其他管理员.