Php包含安全性-使用数组和名称前缀

Php包含安全性-使用数组和名称前缀,php,arrays,security,include,prefix,Php,Arrays,Security,Include,Prefix,我现在正在自学php,我正在开发一些使用php include的简单网站,以简化页面创建过程。 我在这个网站上搜索了一些安全的方法,但是,作为一个noob,我总是害怕搞砸 <?php $siteArticles = array('instalacoes','galeria','regiao-e-historia','precos','contactos'); if( isset($_GET['page']) ){ if( in_array($_GET['pa

我现在正在自学php,我正在开发一些使用php include的简单网站,以简化页面创建过程。 我在这个网站上搜索了一些安全的方法,但是,作为一个noob,我总是害怕搞砸

<?php
    $siteArticles = array('instalacoes','galeria','regiao-e-historia','precos','contactos');
    if( isset($_GET['page']) ){
        if( in_array($_GET['page'], $siteArticles, true) && file_exists('pt/'.'rbs-article-'.$_GET['page'].'.php') ){ 
            include('pt/'.'rbs-article-'.$_GET['page'].'.php'); 
        }
    }else{
        include('pt/rbs-article-home.php');
    }
?>

如您所见,它首先检查页面是否允许通过数组,然后向名称文件添加前缀

我的问题是,这有多安全


谢谢您抽出时间。

它很安全。_array()中的
检查使其安全。无法对此代码执行本地文件包含(LFI)攻击,因为请求的页面必须与白名单数组中的一个元素完全匹配。

因为我有妄想症,我仍然会使用
array\u search
并使用索引而不是
$\u get['page']