特定の php ファイルを使用する必要があり、他のユーザーがこのファイルに直接アクセスできないようにするため、global.php などの他のインクルード ファイルにパラメーターを定義し、それがアクセスされるページ データの前に定義されているかどうかを判断できます。 php このパラメータが定義されていない場合、アクセスは禁止されます。
global.php で定義
以下は引用内容です:
以下为引用的内容:
define('ROOT','./'); ?> 在data.php文件中判断:
//data.php if (!defined("ROOT")) { echo "You Cannot Access This Script Directly, Have a Nice Day."; exit(); } ?>
|
define('ROOT','./'); ?> data.php ファイルで判断します:
//data.php if (!define("ROOT")) { echo "このスクリプトには直接アクセスできません。良い一日を。"; exit(); } ?
|
テーブル>
このようなコードは、未定義の変数 [このファイルでは未定義であると言うべきです] などの多くのセキュリティ問題を解決できます。 しかし、これは脆弱性がローカルに組み込まれるまではほとんど意味がありません。たとえば、
以下为引用的内容:
if ( !defined('ROOT') ) { die('Do not access this file directly.'); } if ( !isset($root_path) ) { $root_path = './'; } require_once($root_path . 'config.php'); ?>
|
common.php ファイルのコードを見てみましょう:
以下は引用内容です:
if ( !define('ROOT') ) { die('このファイルに直接アクセスしないでください。'); } if ( !isset($root_path) ) { $root_path = './'; } require_once($root_path . 'config.php');< br/>?>
|
テーブル>
!define('X') 制限がない場合、$root_path はここで定義されず、リモート インクルードになります。
そして、変更されたスクリプトには 2 つの更新によって引き起こされるローカル インクルージョンがあります -->include 攻撃を使用すると、このローカル インクルージョンの脆弱性を利用して common.php をインクルードし、ブレークスルーを引き起こすことができます。 ')、リモート包含に変換します。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31