2

很明显,对于任何大小合理的网站,使用 PHP 包含在模块中构建它具有很大的优势,因此我选择使用包含来动态创建页面内容。我反对包含页眉和页脚的想法,所以我做了这样的逆操作(index.php):

    if(isset($_GET['page']))
    {
        $whitelist = array("contact","about","access", etc.);
        if(in_array($_GET['page'], $whitelist))
        {
           include($_GET['page'].".php");
        }

    }
    else
    {
        include('home.php');
    }

有些人以安全为由反对这一点(尽管他们从不提供替代方案),但我发现这是一个巧妙的解决方案。我的问题是,当我的网站有数百甚至数千页时会发生什么?我是否只是继续向白名单数组添加变量,直到它变得很大,还是有更好的方法?

4

3 回答 3

1

当您的网站有成百上千的页面时,所有页面都是独一无二的,您可能会将它们存储在数据库中。他们的 URL 也是如此(contact,about等)。因此,如果 get value 是有效的 slug(存在于表中),那么就可以了。

于 2012-07-22T21:33:19.937 回答
0

使用数据库将页面列入白名单。这样您就可以一次性获得配置设置和权限。

于 2012-07-22T21:32:03.383 回答
0

以我的经验,将它们包含在 php 中的白名单页面不是一个好习惯。因为添加新页面或修改旧页面名称需要更改此列表。我认为最好使用另一种形式的地址验证。使用MVC之类的类或基于模式验证地址,或者使用 apache 的重写是很好的做法。无论如何,这取决于你!

于 2012-07-22T22:22:44.360 回答