| サポート|PHP 4、PHP 5、PHP 7
|---------------|--------- | 短い説明|別のテキストファイルまたはスクリプトをスクリプトに追加します。 | 要件|挿入する他のテキストファイルやスクリプト。 | 注意|外部ファイルを読み込むことができません。
別のテキストファイルやスクリプトをページに挿入します。プレーン/テキストファイルをサポートします。
埋め込まれたファイルは、あたかもページ内に直接存在するかのように動作します。
埋め込まれたスクリプトは自動的に実行されます。
埋め込みスクリプトは、変数の値を転送します。
外部ストレージから読み込むことができません。フォーマットされていないプレーンなテキストとPHPファイルのみ読み込み可能です。
許可されたパス形式。
script.php
- 同じディレクトリにあるファイル、実行されます。script.html
- 同じディレクトリにあるファイルですが、実行されません。./file.php
- 同じディレクトリにあるファイルが実行されます。../page.html
foldersfile.php
- write in Windowsスラッシュのタイプ ****
と **/**
は相互変換が可能なので、そのような処理をする必要はありません。
不正なパスエントリ:https://domena.pripona/slozka/soubor.php
。
include 'file.php';
これは file.php
スクリプトをページに挿入して実行します。
vars.php
$color = '碧い';$fruit = 'アップル';
test.php
$color = '';$fruit = '';echo 'A' . $color . '' . $fruit; // Ainclude 'vars.php';echo 'A' . $color . '' . $fruit; // 青リンゴ
警告:以下の表記は不可能です。変数の内容を定義して転送してください!
include 'file.php?parameter=neco';
なし、ファイルを置くだけです。
**注:**ファイルの内容を比較することができますが、これはセキュリティ上のリスクがあります。括弧の順番が重要!例
if ((include 'file.php') == 'よっしゃー') {echo '値は "OK "です。';}
これは潜在的なセキュリティリスクです
file_get_contents(), readfile() or fopen() で解決可能です。Fopen() は、.txt と .html ファイルにのみ使用する必要があります。
より安全な読み出しは、カスタム関数を定義することで解決できます。
例
$string = get_include_contents('somefile.php');function get_include_contents(string $filename): ?string{if (is_file($filename)) {ob_start();include (string) $filename;return ob_get_clean();}return null;}
Jakub Vránaからメールが届きました。
include '記事/' . $_GET['記事'] . '.html';
これは非常に危険なことです。
攻撃者は、記事名として ../
などを使って別のディレクトリへのリンクを渡すことができ、最後にヌルバイトを渡すことで末尾を消すことができる場合もあります。
少なくとも basename()
関数は使うべきですが、ホワイトリストの値だけを許可するのがベターです。
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | ja