0

index.php というファイルを介してすべてのページ要求をリダイレクトしています。このファイルは、訪問者が要求した URL を見て、一致するテンプレート ファイルがあるかどうかを確認します。

たとえば、http: //www.website.com/contact は実際には index.php スクリプトにルーティングされ、ファイル /var/html/template/contact.tpl が存在するかどうかを確認し、存在する場合はそれを含める必要があります。

私の懸念は、セキュリティとヌル文字、余分なドットとスラッシュなどに関するものです。以下のコードに何らかのフィルターを適用する必要がありますか、それとも pathinfo とディレクトリプレフィックスの使用で十分ですか? 明らかに、指定されたテンプレート ディレクトリの外にファイルを悪意を持って含めることができるようにしたくありません。

<?php

define ('TEMPLATES', '/var/html/templates');

$page = pathinfo ($_SERVER['REQUEST_URI'], PATHINFO_FILENAME);

if (file_exists (TEMPLATES . '/' . $page . '.tpl')) {
    include (TEMPLATES . '/' . $page . '.tpl');
} else {
    header ('HTTP/1.0 404 Not Found');
    echo 'Sorry page not found';
}

?>
4

1 に答える 1