Уязвимость заголовка узла web2py

Забудьте пароль и код подтверждения пользователя имеет уязвимость заголовка узла.

Атакующий может генерировать запрос подтверждения пользователя и сброса пароля с сервера, включая его собственный домен.

Это лучший выход?

https://github.com/web2py/web2py/issues/1196

2 ответа

Решение

Я рассматриваю решение проблем как комплексный подход к безопасности.

Апач действует как привратник. Который при правильной настройке может ограничить анонимные заголовки хоста, направляемые в приложение. (все еще не уверен насчет инъекций в кеш)

Хотя заголовки хостов анонимного домена в Интернете могут не представлять угрозы для приложения в сценарии https.

но автономный запрос, такой как забытый пароль, запрос на сброс электронной почты представляет большую угрозу. Потому что злой злоумышленник может попросить забыть пароль сброса электронной почты через заголовки узла анонимного домена. Затем, если фактический пользователь нажимает ссылку сброса пароля. Злой злоумышленник получит код сброса.

Теперь здесь приложение использует заголовки хостов, маршрутизируемые Apache для создания автономного ответа. Этого не должно быть (apache должен нести ответственность за онлайн-трафик). Таким образом, приложение должно иметь собственный механизм настройки доменного имени и создания автономных ответов.

Ну, как уже упоминалось в выпуске, Host заголовок должен быть установлен сервером, а не объектом запроса.

В этом случае у вас может быть виртуальный хост (vhost), который будет перехватывать любые запросы, которые используют нераспознанное имя хоста. Реализация варьируется в зависимости от веб-сервера, однако вы можете просмотреть ссылки о том, как это сделать на Nginx и Apache.

Более подробную информацию о атаках на заголовки хоста можно найти здесь.

Другие вопросы по тегам