URL-адреса содержат больше структуры, чем кажется на первый взгляд

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

Проанализируйте полное значение один раз с помощью проверенного анализатора URL-адресов, затем примените правила к структурированному результату.

Фрагменты не принадлежат серверному запросу

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

Какая бы политика ни была выбрана, она должна быть видимой и протестированной. Тихое кодирование хеша в путь меняет пункт назначения и является распространенной ошибкой нормализации.

Частные направления требуют особого ухода

Шлейфовые, частные, локальные и внутренние хосты могут стать опасными, когда платформа также получает предварительные просмотры или выполняет проверки работоспособности. Отклонение их перед сохранением упрощает границу безопасности.

Разрешение имени хоста требует дополнительных проверок в изолированном средстве выборки, поскольку общедоступное имя хоста позже может быть преобразовано в частный адрес. Проверка строк сама по себе не является полной защитой SSRF.

API разработчика · Текущий доступ и ограничения