WSGlebKavash, в Gentoo сервис openvpn управляется openrc. И там создание нового vpn делается путём симлинка вида openvpn.name, который означает vpn с конфигом name.conf.
Кирилл Ошев, как вариант, можно рядом с оригинальным pdf хранить pdf с добавленным текстовым слоем. Но в целом это дополнительная задача со звёздочкой, начать можно с остальных форматов...
Опция -k нужна чтобы не проверять сертификат другой стороны. Для первого теста подойдёт.
В my_cert.pem надо положить по порядку ключ и клиентский сертификат в формате PEM.
Я сражался с подобным полгода назад, правда, мне надо было просто сделать тестовый стенд для разработчика, а не подключиться к какому-то живому сервису.
Александр Маджугин, клиент не доверяет CN=xxxxxxxx.xxxx.xx,O=KBS,L=Almaty,C=KZ, сравнивая с CA public.cer. Что логично, ведь public.cer это не сертификат подписанта xxxxxxxx.xxxx.xx, а собственный сертификат пользователя. В приниципе, CURLOPT_SSL_VERIFYPEER в значении false должен отключать эту проверку...
Александр Маджугин, я бы ещё проверил, может там сертификат серверной стороны подписан другим корневым, тогда надо тот CA тоже добавить. И с CURLOPT_VERBOSE тоже попробовать.
Ну и конечно попробовать обычным curl из командной строки поотлаживать тоже.
Drno, нет, не в песочнице. Приложению доступны все файлы, которые доступны запустившему его пользователю. Ну и если вирус является частью ботнета, то глубоко неважно, запущен он в песочнице или нет.
europeexpress, вирусы под Linux встречаются крайне редко, и функционировать им там крайне сложно в силу особенностей системы, многообразия версий ядра, софта, дистрибутивов итд итп. И, конечно, в силу практики устанавливать софт из репозиториев вкупе с более высоким средним уровнем пользователей. Ну и в отличие от винды нет этой дурной практики работать под админом с выключенным UAC. До кучи, сама сфера примененения Linux рядовыми пользователями настолько узка, что вкладывать усилия намного эффективнее в более распространённую операционную систему.
Чаще всего Linux ломают через сетевые уязвимости в торчащих наружу сервисах или слишком слабые/утекшие пароли. Если это случается, то в первую очередь в системе завидится майнер или спамбот. Ну и утаскиваются профили браузера и иного популярного софта, могут даже ssh-ключи стянуть (если они не защищены пассфразой, то это может иметь дополнительные грустные последствия). В наше время это чаще случается с серверами, а не с домашними системами с Linux, потому что они не так уж и часто имеют внешний IP.
Но элементарные нормы безопасности никто не отменял: не следует качать какой попало софт из сомнительных источников, запускать непонятные скрипты и выполнять странные команды. Лучше максимально понимать, что делаешь.
Если данные предполагаются свои собственные, то на чём угодно (например, делается API, выдающий список объектов с нужными условиями в пределах bbox, а на фронте это рисуется объектами поверх карты хоть гуглом, хоть мапбоксом, хоть openlayers, хоть leaflet, да чем угодно вообще), если чужие, то смотреть в сторону API этих чужих сервисов - отдают ли они POI с координатами и метаданными.
freeExec, реализации веб-почты бывают разные, но нормальные реализации вырежут все скрипты и до кучи ещё и запроксируют все включённые в письмо по ссылкам картинки, чтобы не раскрыть IP пользователя.
freeExec, речь больше не о том, что он скачивается, а о том, что почтовые клиенты особым образом о безопасности пользователя, существенно ограничивая функционал по сравнению с браузером.
Дядя Богдан, результатом работы классического компилятора является код для текущей аппаратной платформы, оформленный в виде объектного файла определённой структуры с именованными ссылками на функции и другие символы. Соответственно, если знать имя функции и её аргументы, то её можно вызвать из любого языка.
Конечно, и тут есть много нюансов. Например, С и C++ по-разному формируют имена символов (из-за того, что в C++ одна функция за счёт перегрузки может иметь много вариантов). Поэтому если нужно линковать код C и C++, то приходится использовать extern "C", в этом случае C++ правильно понимает, как ссылаться на функцию из C-кода или как экспортировать у себя функцию, которую будут использовать другие языки (необязательно C).
После компиляции идёт линковка - все файлы собираются в один программный код. Линковка бывает статической - когда объектный файл включается в программу (в UNIX-системах это .o-файлы или архив .o-файлов с расширением .a, в DOS/Windows - .obj) - и динамическая - когда файл включается в программу в процессе запуска или уже после запуска из программного кода с помощью специальных методов (.so-файлы, dll-файлы).
Теперь перейдём к интерпретируемым языкам и языкам с байткодом. В них есть два направления использования: из скрипта вызвать низкоуровневый код и наоборот. Для первой задачи в этих языках есть методы, которые позволяют вызывать функции, но к этим функциям могут предъявляться требования по именованию, типам аргументов итд итп. Если очень надо вызвать что-то более сложное, то можно написать функцию-обёртку. Для второй задачи обычно есть библиотека lib[название_языка], которая позволяет выполнять кусок кода, переданный строкой либо загружаемый из файла. Тут для передачи параметров их тоже надо правильно оформлять. Всё потому, что на низком уровне функция - это просто адрес вызова и определённый блок данных в стеке процессора с аргументами функции, вызывающий код должен правильно угадать, что именно положить в стек, чтобы программа повела себя адекватно, ведь в объектном файле этой информации нет.