Я пытаюсь придумать способы максимально безопасной проверки того, что пользователь владеет веб-сайтом, на который он претендует.
Вот несколько способов, которые я видел:
- Загрузите HTML-файл с неизвестным именем в корневой каталог с заданным содержимым.
- Включите метатег или другой комментарий где-нибудь в источнике домашней страницы
- Отправить письмо на адрес
@domainwearetryingtovalidate.tld
со ссылкой для подтверждения - Проверьте запись CNAME или TXT
- Проверьте записи WHOIS
- Подтвердите физическую информацию, позвонив по телефону или по электронной почте в службу поддержки, обновив записи вручную.
И вот проблемы с этими методами, по порядку:
- Некоторые конфигурации сайта могут не позволять просто загрузить файл в корень
- Плохой дизайн сайта может позволить пользователю этого сайта самостоятельно добавлять этот метатег
- Веб-сайты, которые предоставляют услуги электронной почты, делают это бесполезным; взять
gmail.com
например - Это слишком сложно для большинства владельцев небольших сайтов, чтобы понять, как это сделать.
- Те являются публичными; любой может претендовать на то, чтобы быть кем угодно. Не говоря уже о том, что чаще всего неточно.
- Пустая трата времени
Есть ли другие способы проверить, что пользователь на вашем сайте владеет определенным сайтом? Из перечисленных мною методов, какие из них лучше и хуже? Я заказал их от лучшего к худшему по моему собственному мнению, но я хотел бы видеть то, что думают другие также.
Я планирую реализовать один или несколько из них в PHP.
Ответы:
Я определенно думаю
это лучший способ пойти. Я действительно должен был сделать это один раз. И я не думаю, что многие конфигурации сайта мешают вам сделать это.
Если вы действительно обеспокоены этим, почему бы не разрешить все (безопасные) варианты?
По поводу вашего комментария:
В этих редких случаях пусть эти администраторы идут с записями CNAME / TXT или звонят им :-)
источник
Загрузка файла с непонятным именем - это путь.
Вы написали недостаток в том, что им может быть запрещено загружать файл в корень. Ну, в этом случае это означает, что они не владеют сайтом, и это то, что вы пытаетесь выяснить.
источник
html
илиwww
.Я бы порекомендовал использовать метатег ...
источник
Лично я бы пошел с опцией автоматической электронной почты.
Попросите пользователя ввести свой URL и адрес электронной почты, убедившись, что домен одинаков в обоих случаях. Используйте ту же систему, что и системы сброса пароля:
Для обеспечения дополнительной безопасности сохраните время создания хэша, а затем установите время ожидания через час или два.
источник
Сайт микроформатов сейчас недоступен, когда я пишу это, но кеш Google доступен. Это решение для вас:
http://microformats.org/wiki/RelMeAuth
источник