検索
ホームページバックエンド開発PHPチュートリアルPHP がシェル メソッドを呼び出す、PHP がシェル メソッドを呼び出す_PHP チュートリアル

phpはシェルメソッドを呼び出し、phpはシェルメソッドを呼び出します

この記事の例は、PHP でシェルを呼び出す方法を説明しており、参考のために皆さんと共有されています。具体的な方法は以下の通りです

1. 構成

php.iniの設定で、主に以下の3箇所でセーフモードがオンになっているか確認してください
safe_mode = (これがオフの場合、次の 2 つは気にする必要はありません)
機能を無効にする =
safe_mode_exec_dir=

2.使用する

PHPは基本的にWEBプログラムの開発に使用されるため、セキュリティは重要な考慮点となっています。そこで、PHP 設計者は PHP への扉、つまりセーフ モードを追加しました。セーフ モードで実行する場合、PHP スクリプトには次の 4 つの制限が適用されます:

①外部コマンドを実行する
② ファイルを開く際にいくつかの制限があります
③ MySQLデータベースに接続
④HTTPベースの認証

セーフ モードでは、特定のディレクトリ内の外部プログラムのみが実行でき、他のプログラムへの呼び出しは拒否されます。このディレクトリは、php.ini ファイルのsafe_mode_exec_dir ディレクティブを使用するか、PHP のコンパイル時に --with-exec-dir オプションを追加することで指定できます。デフォルトは /usr/local/php/bin です。

結果を出力できるはずの外部コマンド (PHP スクリプトにエラーがないことを意味します) を呼び出しても空白が表示される場合は、ネットワーク管理者が PHP をセーフ モードで実行している可能性があります。

3.どうやって行うのですか?

PHP で外部コマンドを呼び出すには、次の 3 つの方法を使用できます:

1) PHPが提供する特殊関数を利用する

PHP は、外部コマンドを実行するために、system()、exec()、および passthru() という合計 3 つの特殊な関数を提供します。

システム()

プロトタイプ: string システム (string command [, int return_var])

system() 関数は他の言語の関数と似ており、指定されたコマンドを実行し、結果を出力して返します。 2 番目のパラメーターはオプションであり、コマンドの実行後にステータス コードを取得するために使用されます。

例:

コードをコピーします コードは次のとおりです:
system("/usr/local/bin/webalizer/webalizer");


実行()

プロトタイプ: string exec (string command [, string array [, int return_var]])

exec() 関数は system() に似ており、指定されたコマンドも実行しますが、結果は出力せず、結果の最後の行を返します。コマンド結果の最後の行のみを返しますが、2 番目のパラメーター配列を使用すると、配列の末尾に結果を 1 行ずつ追加することで完全な結果を取得できます。したがって、配列が空でない場合は、呼び出す前に unset() を使用して配列をクリアするのが最善です。第3パラメータは第2パラメータを指定した場合のみ、コマンド実行時のステータスコードを取得できます。

例:

コードをコピーします コードは次のとおりです:
exec("/bin/ls -l");
exec("/bin/ls -l", $res);
#$res はデータであり、各要素は結果の行を表します
exec("/bin/ls -l", $res, $rc);
#$rc の値は、コマンド /bin/ls -l のステータス コードです。成功した場合、通常は 0 です


パススルー()

プロトタイプ: void passthru (string command [, int return_var])

passthru()はコマンドを呼び出すだけで結果は返さず、コマンドの実行結果をそのまま標準出力装置に直接出力します。したがって、 passthru() 関数は、pbmplus (元の画像のバイナリ ストリームを出力する、Unix で画像を処理するツール) のようなプログラムを呼び出すためによく使用されます。コマンド実行時のステータスコードも取得できます。

例:

コードをコピーします コードは次のとおりです:
header("Content-type: image/gif");
passthru("./ppmtogif ハント.ppm");

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

PHPでシェルを実行する方法

php には、外部コマンドを呼び出すための system()、exec()、および passthru() の 3 つの関数が用意されています。
これら 3 つのコマンドは Linux システムのシェル コマンドを実行できますが、実際には異なります。
system() の出力とシェル結果の最後の行を返します。
exec() は結果を出力せず、シェル結果の最後の行を返します。すべての結果は返された配列に保存できます。
passthru() はコマンドを呼び出すだけで、コマンドの実行結果をそのまま標準出力装置に出力します。
類似点: コマンド実行のステータスコードを取得できます

例: system("/usr/local/bin/webalizer/webalizer");

PHPを使用してSHELLコマンドを呼び出すにはどうすればよいですか? SHELLコマンドを呼び出して実行した後?

sysyem() passthru() exec() などの関数のロックを解除します。
passthru('ps -ef'); を実行して、このコマンドの出力を取得します。必要なものを定期的に取得し、これらの関数を呼び出して操作を実行します。具体的な使用方法についてはマニュアルを参照してください。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/906677.html技術記事 phpでシェルを呼び出す方法、phpでシェルを呼び出す方法 この記事では、phpでシェルを呼び出す方法を説明し、参考のために共有します。具体的な方法は以下の通りです。 1. 設定 php.ini の設定を表示します...
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPセッションがすでに開始されているかどうかを確認するにはどうすればよいですか?PHPセッションがすでに開始されているかどうかを確認するにはどうすればよいですか?Apr 30, 2025 am 12:20 AM

PHPでは、session_status()またはsession_id()を使用して、セッションが開始されたかどうかを確認できます。 1)session_status()関数を使用します。 php_session_activeが返された場合、セッションが開始されました。 2)SESSION_ID()関数を使用します。空の文字列が返された場合、セッションが開始されます。どちらの方法でもセッション状態を効果的に確認でき、使用する方法を選択することは、PHPバージョンと個人的な好みに依存します。

Webアプリケーションでセッションを使用することが不可欠なシナリオを説明してください。Webアプリケーションでセッションを使用することが不可欠なシナリオを説明してください。Apr 30, 2025 am 12:16 AM

Sessionsionsionsarevitalinwebapplications、特にコマースプラットフォームの前。

PHPでの同時セッションアクセスをどのように管理できますか?PHPでの同時セッションアクセスをどのように管理できますか?Apr 30, 2025 am 12:11 AM

PHPでの同時セッションアクセスの管理は、次の方法で実行できます。1。データベースを使用してセッションデータを保存します。これらの方法は、データの一貫性を確保し、並行性のパフォーマンスを向上させるのに役立ちます。

PHPセッションを使用することの制限は何ですか?PHPセッションを使用することの制限は何ですか?Apr 30, 2025 am 12:04 AM

phpsessionshaveverallimitations:1)storagecconstraintscanleadtoperformanceissues; 2)securityvulnerablesliasitylikessessionfixationAttacksicexist;

負荷分散がセッション管理にどのように影響し、それに対処するかを説明します。負荷分散がセッション管理にどのように影響し、それに対処するかを説明します。Apr 29, 2025 am 12:42 AM

負荷分散はセッション管理に影響しますが、セッションの複製、セッションの粘着性、集中セッションストレージで解決できます。 1。セッションレプリケーションサーバー間のセッションデータをコピーします。 2。セッションスティンネスは、ユーザーリクエストを同じサーバーに指示します。 3.集中セッションストレージは、Redisなどの独立したサーバーを使用してセッションデータを保存してデータ共有を確保します。

セッションロックの概念を説明します。セッションロックの概念を説明します。Apr 29, 2025 am 12:39 AM

SESSIONLOCKINGISATECHNIQUESTOESUREAUSER'SSESSIONREMAINSEXCLUSIVETOONEUSATIME.ITISCRUCIALFORPREVENTINGDATACORTIONANDSECURITYBREACHESINMULTI-USERAPPLICATIONS.SESSIONLOCKINGISISIMPLEMENTEDUSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGROCKINGSMECHANISMなど

PHPセッションの選択肢はありますか?PHPセッションの選択肢はありますか?Apr 29, 2025 am 12:36 AM

PHPセッションの代替品には、Cookie、トークンベースの認証、データベースベースのセッション、Redis/Memcachedが含まれます。 1.Cookiesは、クライアントにデータを保存することによりセッションを管理します。 2.トークンベースの認証はトークンを使用してユーザーを検証します。これは非常に安全ですが、追加のロジックが必要です。 3.Databaseベースのセッションは、データベースにデータを保存します。これは、スケーラビリティが良好ですが、パフォーマンスに影響を与える可能性があります。 4. Redis/Memcachedは分散キャッシュを使用してパフォーマンスとスケーラビリティを向上させますが、追加のマッチングが必要です

PHPのコンテキストで「セッションハイジャック」という用語を定義します。PHPのコンテキストで「セッションハイジャック」という用語を定義します。Apr 29, 2025 am 12:33 AM

SessionHijackingとは、ユーザーのSessionIDを取得してユーザーになりすましている攻撃者を指します。予防方法には、次のものが含まれます。1)HTTPSを使用した通信の暗号化。 2)SessionIDのソースの検証。 3)安全なSessionID生成アルゴリズムの使用。 4)SessionIDを定期的に更新します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません