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 番目のパラメーターはオプションであり、コマンドの実行後にステータス コードを取得するために使用されます。
例:
実行()
プロトタイプ: string exec (string command [, string array [, int return_var]])
exec() 関数は system() に似ており、指定されたコマンドも実行しますが、結果は出力せず、結果の最後の行を返します。コマンド結果の最後の行のみを返しますが、2 番目のパラメーター配列を使用すると、配列の末尾に結果を 1 行ずつ追加することで完全な結果を取得できます。したがって、配列が空でない場合は、呼び出す前に unset() を使用して配列をクリアするのが最善です。第3パラメータは第2パラメータを指定した場合のみ、コマンド実行時のステータスコードを取得できます。
例:
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 で画像を処理するツール) のようなプログラムを呼び出すためによく使用されます。コマンド実行時のステータスコードも取得できます。
例:
passthru("./ppmtogif ハント.ppm");
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
php には、外部コマンドを呼び出すための system()、exec()、および passthru() の 3 つの関数が用意されています。
これら 3 つのコマンドは Linux システムのシェル コマンドを実行できますが、実際には異なります。
system() の出力とシェル結果の最後の行を返します。
exec() は結果を出力せず、シェル結果の最後の行を返します。すべての結果は返された配列に保存できます。
passthru() はコマンドを呼び出すだけで、コマンドの実行結果をそのまま標準出力装置に出力します。
類似点: コマンド実行のステータスコードを取得できます
例: system("/usr/local/bin/webalizer/webalizer");
sysyem() passthru() exec() などの関数のロックを解除します。
passthru('ps -ef'); を実行して、このコマンドの出力を取得します。必要なものを定期的に取得し、これらの関数を呼び出して操作を実行します。具体的な使用方法についてはマニュアルを参照してください。

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

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

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

phpsessionshaveverallimitations:1)storagecconstraintscanleadtoperformanceissues; 2)securityvulnerablesliasitylikessessionfixationAttacksicexist;

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

SESSIONLOCKINGISATECHNIQUESTOESUREAUSER'SSESSIONREMAINSEXCLUSIVETOONEUSATIME.ITISCRUCIALFORPREVENTINGDATACORTIONANDSECURITYBREACHESINMULTI-USERAPPLICATIONS.SESSIONLOCKINGISISIMPLEMENTEDUSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGSINGROCKINGSMECHANISMなど

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

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

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

ホットトピック









