2

妥当なサイズの Web サイトであれば、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 スラッグも ( contactaboutなど)。したがって、get value が有効なスラッグ (テーブルに存在する) である場合は、次のようになります。

于 2012-07-22T21:33:19.937 に答える
0

データベースを使用してページをホワイトリストに登録します。そうすれば、構成設定と権限を一度に取得できます。

于 2012-07-22T21:32:03.383 に答える
0

私の経験では、ページをホワイトリストに登録して php に含めることはお勧めできません。新しいページを追加したり、古いページ名を変更したりするには、このリストを変更する必要があるためです。別の形式の住所検証を使用する方がよいと思います。MVC などのクラスを使用するか、パターンに基づいてアドレスを検証するか、Apache の書き換えを使用することをお勧めします。とにかく、それはあなた次第です!

于 2012-07-22T22:22:44.360 に答える