倫太郎
никакой
Denis
Чет этот ошибки сыпет
Denis
никакой
Ты это к чему? Мож у меня это в ТЗ
Denis
https://keymetrics.io/2015/06/10/pm2-ssh-expose-a-fully-capable-terminal-within-your-browser/
Denis
Не слушать их? Слушать тебя?
Denis
Вон по HTTPS и с авторизацией https://github.com/krishnasrinivas/wetty
Denis
@f3ath ^
Nikita
Что делать? 0.10.48
А зачем 0.10?
Nikita
Это так ^ Страшно. Но работает )))
Эмм. А зачем аргументы командной строки конкатенацией строить?
Denis
Шта???
Denis
Эмм. А зачем аргументы командной строки конкатенацией строить?
Ты о чем вообще? Где ты увидел конкатенацию?
Denis
Это не конкатенация
Nikita
Ой, да ну. А что это?
Denis
'str' . 'str' // concat in PHP 'str' + 'str' // concat in JS
Denis
А то - template literals
Denis
Это раз!
Nikita
Они в данном случае эквивалентны конкатенации.
Nikita
Что ты напишешь "kill -HUP {$pid}", что ты напишешь "kill -HUP " . $pid — и так и так будет одна фигня.
Denis
Так же, как PHP эквивалентно JS
Denis
"kill -HUP " . $pid я так никогда не напишу Это говнокод
Nikita
По-хорошему надо массив параметров передавать, а не в строку руками его пихать.
Nikita
"kill -HUP " . $pid я так никогда не напишу Это говнокод
"kill -HUP {$pid}" настолько же говнокод.
Denis
{$pid} - это не аргументы
Denis
Это идентификатор процесса
Denis
Умник
Nikita
Это аргумент kill.
Denis
Нет
Denis
А да, пардон
Denis
))
Nikita
По-нормальному тут надо звать какую-то функцию от ('kill', ['-HUP', $pid])
Denis
Но как бы написал ты?
Vitaly
🍿
Nikita
В пхп есть функция, которая принимает аргументы в виде, который я написал?
Nikita
Если нет — я бы написал её через escapeshellarg (или как там её) и уже её бы дёргал. А не конкатенировал аргументы руками в строку — это верный путь к RCE.
Nikita
Аналогично тому, почему нельзя SQL запросы конкатенацией строить (даже если эта конкатенация засахерена темплейт стрингами языка).
Denis
Ты бредишь
Denis
Это так ^ Страшно. Но работает )))
Denis
Всмотрись еще разок
Nikita
И что?
Nikita
Я видел твой код.
Nikita
Так нельзя писать.
Denis
$this->handle(new Reload());
Nikita
Ты рано или поздно напорешься на RCE.
Denis
Покажи мне RCE
Nikita
Тут-то да.
Но гораздо проще ввести за правило так не делать никогда, чем каждый раз следить за параметрами руками.
Dika
Чо такое RCE?
remote code execution
Nikita
Все параметры в SQL запросах и аргументы в запуске процессов должны идти в виде массива/структуры, а не руками экранироваться и собираться в строку на каждом месте.
Nikita
Покажи свой код
Я тебе выше написал.
Denis
Другой
Nikita
В пхп есть функция, которая принимает аргументы в виде, который я написал?
Nikita
Вот в таком.
Nikita
Если нет — я бы написал её через escapeshellarg (или как там её) и уже её бы дёргал. А не конкатенировал аргументы руками в строку — это верный путь к RCE.
Denis
Файл целый
Nikita
Не, мне сейчас не до того, чтобы писать эту хрень на пхп ;-)
Denis
Покажи любой свой другой код
Nikita
Я описал тривиальную штуку, сделай это и посмотри что будет. Даже вангую что есть примеры где-то.
Nikita
Ок.
Nikita
await child_process.execFileAsync(slimsh, [ext, path.resolve(outdir), tgz], {
Nikita
Вот пример.
Nikita
Но он слегка на жс.
Nikita
Аргументы передаются массивом.
Alexander
ixplo
)))) как скопировать публичный ключ в битбакет из ЛИНУХА? )))
ixplo
я не понимаю принцип копирования из баша 😂🙈
Alexander
# cat ~/.id_rsa.pub Ctrl-C -> Ctrl-V
Nikita
Тут относительно безопасные входные данные.
Дело в том, что когда люди думают "тут относительно безопасные входные данные, да чё тут экранировать", в итоге получается что у них так раз 50 в проекте понапихано в разных местах. И в итоге в каком-то одном из них получаются небезопасные входные данные.
Alexander
Обращайся. У меня много таких заготовок )))
Vint
@ChALkeR , кстати, о ключах. Можешь сказать, как сейчас секьюрнее генерить ключики? Я про выбор аглоритма. По-дефолту идёт rsa, но многие в сети его хаят (особенно при дефолтной длине ключа).
ixplo
mc в режиме просмотра мышью выделять не давал )
Denis
Че будет, если QmlWeb = null https://github.com/qmlweb/qmlweb-viewer/blob/master/renderer.js#L4