掲題の件に関して質問させて下さい。
今、下記の様なプログラムのショートカットを実行しようとしています。
[c:\00001\00002\exe.php:]
<?php
/*exe.phpの内容*/
system("c:\000_aFolder\b'_folder\00005.EXE.lnk > /dev/null &");
?>
[コマンドプロンプトの実行:]
>php exe.php
[結果:]
Warning: system(): NULL byte detected. Possible attack in c:\00001\00002\exe.php on line 3
system関数がexec関数でも同じエラーで実行できませんでした。
ファイルやフォルダ名を変えることなくこのショートカットをたたくPHPを実行できないものでしょうか?
どうかよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
バックグラウンドで実行したいなら、Windows では start コマンドを使用します。
詳しい使い方は start /? を実行して確認してください。http://itpro.nikkeibp.co.jp/atcl/column/15/04200 …
No.1
- 回答日時:
文字列の中で \ を書くときは、\\ と書かないと駄目です。
bx2さんありがとうございます。
ようやくプログラム自体をたたくことができました。
ただ
> nul &
を付けているのにコマンドプロンプトが帰りません。
$str='"c:\\000_aFolder\\b\'_folder\\00005.EXE.lnk"'." >nul 2>&1 ";
system($str); //コマンドが帰らない
$str='"c:\\000_aFolder\\b\'_folder\\00005.EXE.lnk"'.' >nul 2>&1 ';
system($str); //これもコマンドが帰らない
掲題とは変わってしまいましたがお導き下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- その他(IT・Webサービス) エクセルの実行ファイルについての質問です。 1 2023/05/04 03:58
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP WordpressのPHPを安全に編集する方法 1 2022/08/04 01:43
- WordPress(ワードプレス) [BuddyPress]試したいのですが! 3 2022/06/01 13:36
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- その他(セキュリティ) exeファイルの個人情報について 3 2023/06/29 17:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MySQLでのdeadlockをPHPで検出...
-
PHPでサーバーにインストールさ...
-
PHPからCプログラムを実行して...
-
【PHP】命令は記述順に処理...
-
PHPで外部プログラムのバックグ...
-
phpからエクセルのマクロを実行...
-
copy() で属性保存
-
JSのWINOW.CONFI...
-
シェルスクリプトをPHPで動かそ...
-
query、prepare、executeの違い
-
PHPの自動実行
-
PHPファイルをCron設定からのみ...
-
[cakePHP]外部ファイルの実行方法
-
実行ユーザー切り替え方法
-
PHPからlhaコマンドを使いたい
-
PHPからバッチファイルの実行
-
onedrive にexcelファイルをア...
-
.phpと.incファイルの違いはな...
-
フォントの色を変えるには?
-
CFileDialogの最初のディレクト...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
mysql複数レコードをまとめて削...
-
php実行中に実行中のphpファイ...
-
phpからエクセルのマクロを実行...
-
ヒアドキュメントの中で演算子...
-
PHPからバッチファイルの実行
-
PHPのコマンドをnobodyオーナで...
-
copy() で属性保存
-
$argv[1]) && $argv[1]・同じ
-
PHPで外部プログラムのバックグ...
-
Prompt入力値をphp変数として取...
-
PHPでサーバーにインストールさ...
-
PHPで、C#のプログラムを実行す...
-
query、prepare、executeの違い
-
require_onceが動いていない
-
現在、レンタルサーバ(コアサー...
-
IIS + PHP からのWindowsコマン...
-
phpスクリプトのみで定期実行
-
【PHP】命令は記述順に処理...
-
PHP(Windows)でコマンド実行
-
PHPでコマンドプロンプトを実行...
おすすめ情報
補足します。
入力はわたしのみでヌルバイアとは許容して良いものとしています。
ただ、
$str="c:\000_aFolder\b'_folder\00005.EXE.lnk > /dev/null &";
if(preg_match("/^[a-zA-Z0-9]+$/",$str)) {
$str=$str;
}
上記や、
function sanitize($array){
if(is_array($array)){
return array_map('sanitize',$array);
}
return str_replace("\0", " ", $array);
}
$str="c:\000_aFolder\b'_folder\00005.EXE.lnk > /dev/null &";
sanitiize($str);
試しましたがパスが変わりダメでした。
追加で補足です。
パスにはシングルクォートを持ったフォルダがあるので、これも難しいと思います。