我正在用PHP编写代码,需要包含一个config.php
文件,具体取决于网站的URL。如何动态地包含PHP脚本?
我在变量$site
中设置了网址,而$site
的设置位于configs/$site/config.php
。
如何在PHP中动态地要求此文件?
安全吗include "configs/$site/config.php";
?
我正在用PHP编写代码,需要包含一个config.php
文件,具体取决于网站的URL。如何动态地包含PHP脚本?
我在变量$site
中设置了网址,而$site
的设置位于configs/$site/config.php
。
如何在PHP中动态地要求此文件?
安全吗include "configs/$site/config.php";
?
如果将$site
限制为一组值,是的。
$sites = array(
'siteA',
'siteB'
);
if (isset($sites[$site])) {
include "configs/$site/config.php";
} else {
throw new Exception("Unknown site");
}
但是请记住:从外部决不信任任何事情,总是验证值,即来自客户端(浏览器)。
永远不要相信。始终验证。得到它了! – bodacydo
这很好。只要确保用户不能更改$site
变量!如果用户可以改变它,他可以让它包含任何文件。
'$ site'取决于'Host'头文件,感谢提醒我,如果用户将'Host'设置为'../../file \ 0'或类似的东西! – bodacydo
你说“要求”,但然后你演示'包括'...? –
确实,你可能想要使用'require'configs/$ site/config.php';' –
@FrankPresenciaFandos - 在这种情况下,对于'config'文件,'require_once'可能是最有用的方法。 –