V5.1.5 Input Validation
Requirement:#
Verify that URL redirects and forwards only allow destinations which appear on an allow list, or show a warning when redirecting to potentially untrusted content.
Explanation:#
Параметр http может содержать значение URL-адреса и может привести к тому, что веб-приложение перенаправит запрос на указанный URL-адрес. Изменив значение URL-адреса на вредоносный сайт, злоумышленник может успешно запустить фишинговую аферу и украсть учетные данные пользователя. Поскольку имя сервера в измененной ссылке идентично исходному сайту, попытки фишинга выглядят более надежными.
Приложение должно гарантировать, что все перенаправления ведут на контролируемый или надежный сайт. В целом следует избегать перенаправлений на основе входных данных, поскольку они могут способствовать фишинговым атакам. Если они требуются, их следует контролировать, чтобы пользователи перенаправлялись только на надежные сайты.
Remediation:#
Чтобы убедиться, что переадресация и перенаправление URL-адресов разрешают только места назначения, указанные в списке разрешенных, выполните следующие действия:
- Определите URL-адреса, которые перенаправляют и перенаправляют в вашем приложении. Это может быть серверный код, клиентский JavaScript или любой другой механизм, используемый в вашем приложении.
- Просмотрите код, отвечающий за обработку перенаправлений и переадресаций, чтобы убедиться, что он включает проверку списка разрешенных доверенных мест назначения.
- Убедитесь, что список разрешений является исчерпывающим и включает все доверенные места назначения для вашего приложения.
- Если код не включает проверку списка разрешений, внедрите его, который проверяет наличие URL-адреса назначения в списке перед выполнением перенаправления или переадресации.
- Для дополнительной безопасности вы также можете реализовать предупреждающее сообщение, которое отображается при перенаправлении на потенциально ненадежный контент. Это может быть всплывающее окно или сообщение, отображаемое на странице.
- Проверьте внесенные вами изменения, чтобы убедиться, что URL-адреса перенаправляют и пересылают только те адресаты, которые указаны в списке разрешенных, и что предупреждающее сообщение правильно отображается для ненадежного содержимого.
Важно иметь в виду, что это лишь один из аспектов устранения уязвимостей безопасности при перенаправлении и перенаправлении URL-адресов, и другие меры безопасности, такие как проверка ввода, контроль доступа и мониторинг, также должны быть реализованы для обеспечения комплексного решения безопасности.