1

別のホストから PHP 変数を送信して Web サイトをハッキングすることは可能ですか? 例えば:

ファイル secure_content.php があります。

<?php
    if($fgmembersite->Login())  //placed at the top to avoid the warning: headers already sent
     {
     $login = TRUE;
     }  
   //intentionally removed {else $login === FALSE}

   // echo some  contents

    if ($login === TRUE) 
    {
    //echo secure data
    }

    else
    {
    echo "You are not authorised to view this content";
    }
?>

そして、攻撃者は Web サーバーに hack.php という名前のファイルを持っています。

<?php
$login = TRUE;
require_once "http://mywebsite.com/secure_content.php";
?>
  1. ハッカーが安全なコンテンツを閲覧することは可能ですか?
  2. 他の Web サーバーから include/require を使用してスクリプトを処理しないようにするにはどうすればよいですか?
4

3 に答える 3

4

いいえ、別の Web サーバーからスクリプトを処理することはできません。サーバーは PHP ソース コード全体をリモート サーバーに提供するのではなく、スクリプトの実行結果を提供します。ここで心配する必要はありません。

そもそもそれが不可能なため、他の Web サーバーからのインクルードを使用してスクリプトを処理することは避けられません。したがって、防ぐものは何もありません。

于 2013-10-03T10:44:49.617 に答える
2

Denis が言ったように、サイトを管理した個人的な経験からいくつかの興味深い注意事項を追加したいと思います。

ファイルの編集中に、php スクリプトの名前を secure_content.php.back のような名前に変更することがよくあります。その後、攻撃者は ( secure_content.php.back) にアクセスして PHP スクリプトをダウンロードできます。ソースコードを持っているだけでは変数をハイジャックするのに十分ではありませんが、すでに脆弱性になっています。secure_content.php.back次のような構成変数がある場合、増幅されます$database_password

また、Web サーバーから PHP をアンインストールする場合、Apache (またはその他のもの) が secure_content.php をテキスト ファイルとして提供しますが、これも危険です。PHPエンジンをいじる場合は、覚えておいてください。

于 2013-10-03T10:50:28.817 に答える
1

いいえ、サーバーはスクリプトを実行し、結果を悪のサーバーに送信します。

あなたが言及したのと同様のことが、PHPの古いバージョンでregister_globalsオンになっている場合に発生する可能性があります。これにより、誰かが を呼び出すことができますhttp://mywebsite.com/secure_content.php?login=true

これ$loginにより、スクリプトの開始時に true に設定されます。ありがたいことregister_globalsに、デフォルトでオフになり、5.3 で廃止され、5.4 で削除されました。ここを参照してください。

于 2013-10-03T10:53:23.277 に答える