Как отследить откуда запускали скрипт?

123 4
lutskboy
На сайте с 22.11.2013
Offline
172
425

привет

скорее всего это не возможно. но спрошу. есть исполняемый файл на C, C++..., или PHP. допустим

myprogram 

я его запускаю в script.php

<?php

exec('myprogram arg1 arg2');

как мне в myprogram определить что его запустил именно  script.php а не кто то другой.

Artisan
На сайте с 04.03.2005
Offline
354
#1
lutskboy :
как мне в myprogram определить что его запустил именно  script.php а не кто то другой.
Передавайте при запуске уникальный случайный код, и контрольный код, который зависит от случайного кода, получение контрольного кода из случайного кода известно только правильному запускающему скрипту, и запускаемой программе.


exec("softina random control ...")

www.leak.info / ДАРОМ линки конкурентов и забытых доменов
lutskboy
На сайте с 22.11.2013
Offline
172
#2
Artisan #:
Передавайте при запуске уникальный случайный код, и контрольный код,
дело в том что script.php тут открытый код. его все видят.  myprogram нет. тут байт код.
WS
На сайте с 01.11.2008
Offline
135
#3
Getting Process Own Pid in C and C++
Getting Process Own Pid in C and C++
  • 2023.03.26
  • Q A
  • www.systutorials.com
Getting Process Own Pid in C and C++ tagged C, gcc, How to, Library, Linux, POSIX, Process, Programming, Tutorial.
lutskboy
На сайте с 22.11.2013
Offline
172
#4
Владимир #:
можно по pid

pid не подходит. я в консоли могу его запустить  а не с  script.php и получу pid и передам его myprogram. 

WS
На сайте с 01.11.2008
Offline
135
#5
lutskboy #:

pid не подходит. я в консоли могу его запустить  а не с  script.php и получу pid и передам его myprogram. 

когда запускаете из пхп программу, то можете получить её pid и записать во временный файл, а из проги проверить по этому pid, совапдает ли с pid программы

getpid()


$command =  'yourcommand' . ' > /dev/null 2>&1 & echo $!; ';

$pid = exec($command, $output);
WS
На сайте с 01.11.2008
Offline
135
#6
кроме того, не уверен что получится, но в с++ также можно попробовать получить parent pid по getppid(), а выводом ps aux проверить, пхп ли этот parent pid или нет
lutskboy
На сайте с 22.11.2013
Offline
172
#7
Владимир #:
когда запускаете из пхп программу, то можете получить её pid и записать во временный файл, а из проги проверить по этому pid, совапдает ли с pid программы

надо попробовать. 

C
На сайте с 22.08.2012
Online
104
#8
lutskboy :

как мне в myprogram определить что его запустил именно  script.php а не кто то другой.

В скрипте передайте ключ в качестве аргумента

exec('/path/to/your_program --from-script script1.php');

в программе проверьте соответсвие аргумента  --from-script его значению

lutskboy
На сайте с 22.11.2013
Offline
172
#9
chaturanga #:
в программе проверьте соответсвие аргумента  --from-script его значению

ето же не значит что я  myprogram запустил с  script.php

может в терминале . а может и з другого скрипта . 1.php

C
На сайте с 22.08.2012
Online
104
#10
lutskboy #:

ето же не значит что я  myprogram запустил с  script.php

может в терминале . а может и з другого скрипта . 1.php

ключом может быть некий хеш, создаваемый скриптом, а-ля md5(pid) - алгоритм придумайте любой
его же и сверяйте в программе


123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий