Здравствуйте,Простите за глупый вопрос, но кто и что может сказать по безопасности ПЕРЕМЕННЫХ демона, если он от пользователя через веб-форму получает данные и помешает их в переменные std::string (потом даже пишет на диск). Есть ли какие-то нюансы, возможно спец. символы, которые в память нельзя записывать, чтобы целостность данных не нарушилась, чтобы демон не упал или еще хуже злоумышленник не получил доступ к диску и тд.
Если есть такие нюансы, то на что проверять данные?
Спасибо
> Здравствуйте,
> Простите за глупый вопрос, но кто и что может сказать по безопасности
> ПЕРЕМЕННЫХ демона, если он от пользователя через веб-форму получает данные и
> помешает их в переменные std::string (потом даже пишет на диск). Есть
> ли какие-то нюансы, возможно спец. символы, которые в память нельзя записывать,
> чтобы целостность данных не нарушилась, чтобы демон не упал или еще
> хуже злоумышленник не получил доступ к диску и тд.
> Если есть такие нюансы, то на что проверять данные?
> СпасибоВы не можете подать сокету для буфера std:string, буфер всегда участок памяти, соответственно необходимо контролировать размер читаемых данных.
> Вы не можете подать сокету для буфера std:string, буфер всегда участок памяти,
> соответственно необходимо контролировать размер читаемых данных.да, точно, если переполнить буфер, то перезапишется какой-то другой участок памяти с разными последствиями, это верно, еще раз проверю этот помент, но вроде бы реализовал чтение по 256 символов из сокета и потому добавление их к std::string т.е. все безопасно.
Еще какие-то моменты могут быть при работе с этими данными, при условии, что в buf а потом и в std::string попадают любые данные от злоумышленника.
Позже std::string не ограничено в использовании, в том числе пишется на диск.
Нужны ли дополнительные проверки где-то еще?
Т.е. я так понимаю, главное чтобы не было ситуации, что в std::string не оказался какой-то бинарный код, который неожиданно выполнится процессором.Спасибо.
>[оверквотинг удален]
> разными последствиями, это верно, еще раз проверю этот помент, но вроде
> бы реализовал чтение по 256 символов из сокета и потому добавление
> их к std::string т.е. все безопасно.
> Еще какие-то моменты могут быть при работе с этими данными, при условии,
> что в buf а потом и в std::string попадают любые данные
> от злоумышленника.
> Позже std::string не ограничено в использовании, в том числе пишется на диск.
> Нужны ли дополнительные проверки где-то еще?
> Т.е. я так понимаю, главное чтобы не было ситуации, что в std::string
> не оказался какой-то бинарный код, который неожиданно выполнится процессором.Отлично, доппроверки не нужны. Хотя, конечно же, это идея - подменить репозитарий какого-либо дистрибутива, модифицировать обновление популярной библиотеки на проверку на волшебную последовательность в данных, запускать код после этого секретного тега. Но, вроде бы, такого ещё не наблюдалось)