2

Web スクリプトで exe ファイルを実行し、exe の結果を Web 要求に返す必要があります。

exe の結果をエコー バックするか、exe を変更して結果をファイルに保存し、そのファイルを読み取って Web 要求をエコー バックすることができます。

問題は、IIS 匿名ユーザー IUSER_%COMPUTER_NAME% が C:\windows\system32\cmd にアクセスできないため、IIS で php を使用すると、すべての exec() shell_execute() system() タイプ関数が「Unable to fork」でエラーになることです。 。EXE

これは、この IIS 匿名ユーザーの cmd.exe に対するアクセス許可を変更することで修正できますが、これは重大なセキュリティの弱体化です (私は信じています)。

IIS の匿名ユーザーに対して cmd.exe を開かずに、IIS の下の PHP スクリプトで Exe を呼び出す方法はありますか?

助けていただければ幸いです。

なぜこれを行う必要があるのですか?私はシリアル キー ジェネレーターを持っています。誰かがクレジット カード経由で私の製品を購入すると、支払い処理業者はライセンス名をパラメーターとして渡す URL を呼び出し、そのライセンス名のシリアル番号を返す必要があります。

私のライセンス キー ジェネレーターは WinLicense で、これには exe があります。

次のようなものを実行する必要があります

shell_exec("C:\inetpub\wwwroot\test.com\testLicense.exe \"".$regName."\""); // または exec() または system()

(testLicense.exe は、私の php スクリプトがエコーできるファイルに結果を保存します)

4

1 に答える 1

2

Filter the variables you feed to exec() very carefully.

use integers only for numerical information

if it's a filename use file_exists() to confirm it's a real filename

if it's a string use regex and remove characters like ' and " and \ and ; so any commands in it wont run.

于 2009-04-26T01:50:08.737 に答える