2

私は今、自分で php を学んでおり、ページ作成プロセスを容易にするために php インクルードを使用していくつかの簡単なサイトを開発しています。私はこのウェブサイトを安全にする方法を探しましたが、初心者として、混乱することを常に恐れています.

<?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');
    }
?>

ご覧のとおり、最初にページが配列を介して許可されているかどうかを確認し、次にプレフィックスを名前ファイルに追加します。

私の質問は、これはどのくらい安全ですか?

お時間をいただきありがとうございます。

4

1 に答える 1

3

安全です。in_array()チェックはそれを安全にするものです。要求されたページがホワイトリスト配列内の要素の 1 つと正確に一致する必要があるため、このコードに対してローカル ファイル インクルージョン (LFI) 攻撃を実行することはできません。

于 2013-02-15T11:43:02.093 に答える