Приветствую!
Возник вопрос по безопасности и программировании.
Системе на вход приходят данные по эл.почте.
Чтение информации из файла - вложения осуществляется наподобие такого.
#include <fstream>
void rf(char *nFile)
{
char s[128];
ifstream rf(nFile);
if (rf != NULL)
{
rf.getline(s, sizeof(s));
short k=0;
while ( k<128 && s[k]!='\n' && s[k]!='\0' ) k++;
if (s[0]=='X' && k<128) cout<<s<<"\n";
else cout<<"Error\n";
}
rf.close();
}
Если отправитель будет скомпрометирован и
пришлет вместо данных файл с вирусом,
а программа попробует его считать - чем это чревато?
Могут ли быть выполнены микрокоманды при вызове getline ?
Т.е. не приведет ли это (например) к зависанию исполняемой программы?
Возможно, системе вреда и не будет (пользователь не привилегирован).
Вопрос в защите данных пользователя.