ホームページ >php教程 >php手册 >アプリケーションのヒント: 動的 Web ページ内の PHP プログラム ファイルへの直接アクセスを許可しないでください。

アプリケーションのヒント: 動的 Web ページ内の PHP プログラム ファイルへの直接アクセスを許可しないでください。

WBOY
WBOYオリジナル
2016-06-21 09:01:13922ブラウズ

特定の php ファイルを使用する必要があり、他のユーザーがこのファイルに直接アクセスできないようにするため、global.php などの他のインクルード ファイルにパラメーターを定義し、それがアクセスされるページ データの前に定義されているかどうかを判断できます。 php このパラメータが定義されていない場合、

は global.php

define('ROOT','./');< で定義されています。 🎜>? >

data.php ファイル内で判断します:

//data.php
if (!define("ROOT")) {
echo "このスクリプトには直接アクセスできません。良い一日を。";
exit();
}
?>
この種のコードは多くのセキュリティを解決できます変数が未定義です [このファイルで定義されていないと言うべきです] などの問題。

しかし、これは脆弱性がローカルに組み込まれるまではほとんど意味がありません。たとえば、

common.php ファイルのコードを見てみましょう:

if ( !define('ROOT') )
{
die(' このファイルには直接アクセスしないでください。');
}
if ( !isset($root_path) )
{
$root_path = './';
}
require_once( $root_path . 'config.php');
?>
!define('X') 制限がない場合、$root_path はここで定義されないため、次のようになります。リモートインクルージョン。

そして、変更されたスクリプトには 2 つの更新によって引き起こされるローカル インクルージョンがあります -->include 攻撃を使用すると、このローカル インクルージョンの脆弱性を利用して common.php をインクルードし、ブレークスルーを引き起こすことができます。 ')、リモート包含に変換します。



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。