немного уточню. мне нужно запускать программу именно с сайта http://site.ru/script.php и файла script.php . а не с консоли bash sh ...
Просто удлинили проблему на 1 шаг1) вызвали скрипт с токеном сгенерированным по своему алгоритму (в примере делаем примитивные одноминутный токен - умножаем текущий час 9 на минуту 21)
curl http://site.ru/script.php?token=189
2) В скрипте вызываем программу и передаём токен
if (isset($_GET['token'])) { $token = escapeshellarg($_GET['token']); shell_exec("/path/to/your_program $token");}
3) Вычисляем токен и выполняем / не выполняем код
int main(int argc, char *argv[]) { // без аргументов завершаем с ошибкой if (argc != 2) { return 1; } // получаем время time_t now = time(NULL); struct tm *tm_struct = localtime(&now); int hour = tm_struct->tm_hour; int minute = tm_struct->tm_min; // Вычисляем токен и проверяем его if (hour * minute == atoi(argv[1]) { // выполняем свой код } else return 2; // с неверным токеном завершаем с ошибкой return 0;}
каким скриптом. там код открытый. таким образом можно программу запустить и з 2.php просто добавив сверху етот алгоритм
если у вас подразумевается открытость алгоритма кодирования злоумышленнику, то никакой защиты от него вы не придумаете
ето же не значит что я myprogram запустил с script.php
может в терминале . а может и з другого скрипта . 1.php
ключом может быть некий хеш, создаваемый скриптом, а-ля md5(pid) - алгоритм придумайте любойего же и сверяйте в программе
как мне в myprogram определить что его запустил именно script.php а не кто то другой.
В скрипте передайте ключ в качестве аргумента
exec('/path/to/your_program --from-script script1.php');
в программе проверьте соответсвие аргумента --from-script его значению
У них же вроде больше нет бесплатных тарифов для новорегов.
ну так все равно же работает в убунту 22.04, а dist-upgrade и full-upgrade равнозначны.
Может и будет работать вечно, а может очередной разработчик и выкинет лишнюю строчку кода.
dist-upgrade вводил в заблуждение своим названием и его в версии 1.0 заменили на full-upgrade, но прежнее название оставили в качестве псевдонима для обратной совместимости.
По итогу неразбериха стала ещё большая, так как на форумах пошли пространные размышления о том, что это разные команды. Разные хелпы для apt и apt-get также не добавляют определенности:
$ apt-get --help | grep -F -- '-upgrade' dist-upgrade - Distribution upgrade, see apt-get(8)$ apt --help | grep -F -- '-upgrade' full-upgrade - upgrade the system by removing/installing/upgrading packages
Но если посмотреть исходники
$ grep -F -- "-upgrade" ./apt-2.6.1/cmdline/apt.cc {"full-upgrade", &DoDistUpgrade, _("upgrade the system by removing/installing/upgrading packages")}, {"dist-upgrade", &DoDistUpgrade, nullptr},
$ grep -F "dist-upgrade" -A 1 ./apt-2.6.1/cmdline/apt-get.cc dist-upgrade - Powerful upgrader designed to handle the issues with a new distribution.-- {"dist-upgrade", &DoDistUpgrade, _("Distribution upgrade, see apt-get(8)")}, {"full-upgrade", &DoDistUpgrade, nullptr},
то видно, что команды просто псевдонимы друг друга. Всё как обычно - хотели как лучше...
ни в заметках, ни в статьях никто не рекомендует делать dist-upgrade
Может потому, что ещё в 2014-м dist-upgrade заменили на full-upgrade :)
2. Протокол https или http не играют роли, в т.ч. www и отсутствие. Не слушай индивидуумов некоторых.
Для тех, кто живёт в мире со стандартом ISO-7498 роль существенная. SSL-хендшейк происходит на сеансовом уровне OSI, а http-соединение на уровне приложений, поэтому теоретически невозможно блокировать одну страницу в рамках https-соединения. Исключение может быть только в случае если сам блокировщик и является удостоверяющим центром выдавшим сертификат.
Ali93, РКН отправляет запрос на хостинг (если он находится в пределах рф) и по контактным данным найденным на сайте или в whois о включении записи в реестр. Ждёт 3 дня (сужу по личному опыту, хотя сейчас в требованиях реагировать в течении суток), потом рассылает реестр провайдерам. Если на его запрос был отправлен ответ, то присылает письмо, о том, что информация об удалении страницы будет проверена. После проверки присылает письмо об исключении из реестра. Однажды я ошибочно удалил не ту страницу - дополнительно прислал уведомление о том, что информация по прежнему не удалена. Блокировка без уведомлений возможна, только если на сайте нет контактной почты и хостер не в рф.Вот в Беларуси всё проще - там белгиэ вносит в список блокировок без всяких уведомлений/ожиданий.