1
<?php
if (preg_match('/^[a-z0-9]+$/', $_GET['page'])) {
$page = realpath('includes/'.$_GET['page'].'.php');
$tpl = realpath('templates/'.$_GET['page'].'.html');
if ($page && $tpl) {
    include $page;
    include $tpl;
} else {
    // log error!
}
} else {
// log error!
}
?>

你会说这有多安全?Gumbo 在 Stack Overflow 上写了它。
动态包括安全

我想听听你的意见。

干杯

4

4 回答 4

2

我的第一个想法不是关于安全,而是关于你为什么要这样做?

于 2009-02-11T13:16:12.867 回答
2

我会说这很安全。只是不允许任何内容写入这些文件夹。PHP 文件传统上位于服务器的 Web 根目录中,这很危险。如果配置错误或 .htaccess 文件丢失,最好将正在加载的文件放置到外部绝对无法访问的区域。

于 2009-02-11T13:18:05.843 回答
0

你包括你自己的代码。它有多安全?

于 2009-02-11T13:13:50.487 回答
0

我可以在那里看到一些潜在的问题,特别是如果'page'变量包含'..'或其他可能让他们看到他们不应该看到的东西的东西。

我在我的几个网站上做了类似的事情,但我会首先检查“页面”以确保它引用了一组允许的页面中的一个。

于 2009-02-11T13:21:35.663 回答