Google проиндексировал мое приложение токеном безопасности. Как? Как предотвратить?
Я разработал веб-приложение, которое имеет "демонстрационную страницу". Одним из бизнес-правил является избавление пользователей от пробной версии от логина / пароля, при этом пользователю необходимо иметь действующий адрес электронной почты, чтобы начать пробную версию и регистрировать все действия пользователя по отдельности.
На мой взгляд, это было легко: давайте просто используем "токен" в URL в качестве параметра. Мы просим пользователя ввести электронное письмо, а затем отправить ссылку доступа с сгенерированным токеном - почти как API, но вместо JSON и XML мы отображаем HTML с JS. То же самое в моей голове.
Как это: https://www.example.com/trial?token=abcdef123456
Он работал хорошо, пока я не заметил, что Google проиндексировал одну из наших ссылок доступа с действительным токеном. Как?
Для меня это очень странно. У нас есть API, которые используют одну и ту же функциональность - передачу маркера доступа в URL - в течение многих лет. API Google и Microsoft работают точно так же. Разница лишь в том, что я возвращаю HTML вместо JSON.
У нас есть цифровые сертификаты, HTTPS с шифрованием SSL/TLS. Мы используем RNGCryptoServiceProvider для создания безопасного токена. Мы отправляем токены только по безопасному каналу (по электронной почте или на нашем веб-сайте https).
Что могло случиться? И что я могу сделать, чтобы предотвратить это?
Мое предположение: Google Chrome, может быть?
1 ответ
Вполне вероятно, что один из ваших клиентов, которому вы отправили URL доступа со встроенным токеном, в конечном итоге разместил его на форуме / блоге / странице, которая в итоге была проиндексирована.
Сценарий: например. Я получил ваш URL по электронной почте и решил написать о том, насколько крутой ваш сервис, и перечислить URL, чтобы люди могли взглянуть на него. Боты Google приходят по моей странице блога, переходят по вашей ссылке, посещают ее, а затем индексируют по всем релевантным ключевым словам на этой странице. Затем, когда кто-то ищет релевантное ключевое слово, относящееся к вашему веб-сайту / бизнесу, этот URL отображается как результат поиска.
Самопроверка: попробуйте найти этот точный URL в Google, чтобы найти любую страницу, которая может его перечислить.
Исправление: robots.txt
Почему этого не происходит с вашими API- интерфейсами JSON: API-интерфейсы предназначены для потребления машиной. Разработчики знают значение ключа API. Если разработчик не настолько небрежен / глуп, чтобы опубликовать конечную точку API с ключом API в блоге, вряд ли это произойдет.
В случае демонстрационной ссылки, деловой человек может не знать, если он не должен пересылать эту ссылку, если вы не заявите об этом в электронном письме.