@Hocok_B_KapMaHe

Какие символы надо вырезать в GET запросах, при написании сервера ?

Доброго времени всем!
Пишу небольшой веб-сервер,
пытаюсь как то обеопасить его, и из-за незнаний думаю лучше спрошу, чем потом ...
Итак, если get запросы никак не парсить, то пользователь может получить любой файл в системе, например так:

В программе выставляю root-path, пусть будет /var/www/
добавляю к нему из get
GET /index.html HTTP/1.1
Получаем:
/var/www/index.html

Теперь при запросе
GET /../../etc/shadow HTTP/1.1
мы отдаем файл с паролями =)

Итак, т.к. папка в linux не может содержать / или null их нужно сразу вырезать. Двоеточие вырезать - ради безопасности. Итого три.

Какие символы я пропустил ? Имеется ввиду не только символы, но и байты 0-255
  • Вопрос задан
  • 2724 просмотра
Пригласить эксперта
Ответы на вопрос 1
Почитайте статьи "sanitizing URL" и "sanitizing input data" - многое зависит от того, какому ПО в дальнейшем будут передаваться данные, полученные в URL
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы