2012-07-22 72 views
2

很明显,对于任何合理大小的网站,使用PHP构建模块包含很多优点,所以我选择使用includes动态创建页面内容。我是反对包括页眉和页脚的想法,所以我做了这样的倒数(的index.php):如何为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'); 
    } 

有人反对这种基于安全理由(虽然他们永不放弃的替代),但我觉得这是一个很好的解决方案。我的问题是,当我的网站有几百甚至几千页时会发生什么?我是否会一直向白名单阵列添加变量,直到它变得巨大,还是有更好的方法?

回答

1

当您的网站拥有数百或数千个网页时,它们都是唯一的,您可能会将它们存储在数据库中。和他们的网址slu too也(contact,about等)。所以如果获得价值是一个有效的slu((在表中存在),在这里你去。

+0

谢谢您,因为数据库旨在搜索大量数据。 – 2012-07-22 21:36:37

0

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

+0

谢谢你们,耻辱我不能upvote的答案呢。 – 2012-07-22 21:40:13

0

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

+0

有趣的想法,谢谢。 – 2012-07-22 23:52:05