gpt4 book ai didi

PHP include() 替代方案?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:34:07 25 4
gpt4 key购买 nike

我想知道我的代码是否安全以及是否有其他更安全的替代方法来包含外部文件..

所以这是我的代码示例,它安全吗?我怎样才能让它更安全?谢谢!

<?php switch($_GET['p']){
case 'test1':
include 'test1.php';
break;
case 'test2':
include 'test2.php';
break;
case 'test':
echo 'something';
include 'pages/test.php';
echo 'something';
break;
default:
include 'main.php';
break;
} ?>

最佳答案

你的代码没问题。由于文件名是硬编码的,因此有条件地包含文件没有问题,就像您正在做的那样。当包含的文件基于用户未净化的值时,会出现此问题。例如

include $_GET['p'];

可以包含用户想要的任何内容(根据 PHP 设置,它还可以包含其他域中的文件)

其他选项是你正在做的事情的变体

如果文件不存在,

requirerequire_once 将失败。 inlucde_oncerequire_once 确保文件只包含一次,因此如果该文件已包含在程序的其他地方,则不会包含。

include_once 'myfile.php';
include_once 'myfile.php'; //does nothing as the file is already included

如果你有使用类,还有autoloader的选项.从您的应用程序的外观来看,您必须重新构建它才能使用它。

关于PHP include() 替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2617556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com