Как SmartyStreets защищает мою учетную запись?

Я использую smartystreets для проверки адреса и т. д. Единственная настройка, которую я им даю, — это URL-адрес реферера.

Когда я запрашиваю у почтальона, передавая правильный реферер, он работает нормально.

Что, если кто-то предоставит тот же заголовок из AWS CloudFront и похитит лимиты подписки моего аккаунта.

Пытаюсь понять, как защищена моя подписка.

Спасибо.

Вот как я могу запросить без подписки от smartystreets,

URL-адрес, используемый GET с (Referrer: https://smartystreets.com/) Заголовок:

https://us-zipcode.api.smartystreets.com/lookup?auth-id=21102174564513388&agent=smartystreets%20(веб-сайт%3Ademo%2Fsingle-address%40latest)&city=Tustin&state=CA&zipcode=92780&candidates=5&geocode=true&input_id=0

Открытый идентификатор токена аутентификации: 21102174564513388

введите здесь описание изображения


person Kannaiyan    schedule 21.10.2017    source источник
comment
Вы используете ключ веб-сайта или пару секретных ключей?   -  person Jeffrey    schedule 21.10.2017
comment
Запрос через SSL? Если это так, то содержимое запроса не отображается.   -  person David S.    schedule 23.10.2017
comment
Нажмите F12 или Alt Opt I и проверьте сеть в браузере (по крайней мере, в Chrome), вы можете проверить все параметры строки запроса и опубликовать данные, которые были отправлены на заданную конечную точку из Интернета, который сделал вызов.   -  person Kannaiyan    schedule 23.10.2017
comment
@DavidShaw Обновлен вопрос с информацией, полученной с веб-сайта smartystreets. С немного продвинутым кодом сканера очень просто извлекать токены аутентификации smartystreet через Интернет. Smartystreets не только теряет бизнес, но и теряет репутацию клиентов из-за этой уязвимости.   -  person Kannaiyan    schedule 23.10.2017
comment
@Kannaiyan, основатель SmartyStreets здесь. Мы прекрасно понимаем озабоченность, которую вы выражаете. Хотя опубликованные вами ключи предназначены для публичного использования, мы понимаем, что могут быть доступны лучшие решения. Мы будем рады, если вы свяжетесь с нами и лучше обсудите возможные решения для решения этой проблемы на более фундаментальном уровне. В то же время ваши ключи привязаны только к вашему домену, а скорость ограничена, среди прочего, на основе исходного IP-адреса.   -  person Jonathan Oliver    schedule 25.10.2017
comment
@JonathanOliver Я впечатлен вашей реакцией на клиента. Я определенно нахожу технологию авторизации, которая создает риск для клиента и не дает никакой защиты, если ею злоупотребляют другие, когда клиент не несет ответственности. Клиент также потеряет доверие к SmartyStreets, если обнаружит, что его токены используются кем-то другим, а не им. Опять же, исходя из делового опыта, вы можете сказать, как это могло повлиять на клиентов. Но опять же, если все это произойдет за один день, исправить это будет хаос.   -  person Kannaiyan    schedule 25.10.2017
comment
Прежде всего, один из самых больших векторов атак — это кражи ваших ключей и размещение их на другом веб-сайте. Мы защищаемся от этого вектора атаки. Другой вектор — когда они крадут ваш общедоступный/общий ключ веб-сайта и пытаются использовать скрипт для него вне браузера. В этом случае мы также защищаем от использования путем ограничения скорости на основе IP и нескольких других показателей, которые мы собираем.   -  person Jonathan Oliver    schedule 25.10.2017
comment
@Kannaiyan, похоже, вам было бы полезно напрямую поговорить со SmartyStreets: smartystreets.com/contact   -  person SunSparc    schedule 26.10.2017


Ответы (1)


Вы правы в том, что если кому-то удастся украсть ваш домен, он сможет использовать вашу подписку SmartyStreets. Серебряная подкладка здесь заключается в том, что все запросы от браузеров, использующих ключи веб-сайтов (которые предназначены для использования в общедоступном коде javascript, обращенном к интерфейсу), ограничены по скорости, что предотвращает количество возможных поисков. В случае кражи домена вы можете заблаговременно удалить ключи веб-сайта в своей учетной записи или отключить подписку SmartyStreets в течение нескольких минут, чтобы предотвратить несанкционированный доступ.


Подробнее о ключах веб-сайтов и основах их модели безопасности:

https://smartystreets.com/docs/cloud/authentication

Кстати, я бэкенд-инженер в SmartyStreets.

person mdwhatcott    schedule 23.10.2017
comment
Прочитайте вопрос еще раз. Я не упоминал о краже моего домена. Речь идет о краже токенов smartystreet с URL-адреса. Также я особо упомянул о CloudFront, что вы можете сделать это очень легко. Я сделал это жирным, чтобы было понятно. - person Kannaiyan; 23.10.2017
comment
Этот ответ хороший. SmartyStreets помогает защитить вашу учетную запись, используя rate limiting. Да, ваш домен легко подделать, поэтому ключи веб-сайтов ограничены по скорости. Хорошей дополнительной мерой предосторожности, которую вы можете предпринять для защиты своей учетной записи, является периодическая ротация ключа веб-сайта. - person SunSparc; 24.10.2017
comment
@SunSparc В нем не говорилось, как защитить свою учетную запись, даже если я меняю ключи. Ответственность лежит на потребителе, а не на Smarty Streets. Поскольку вы предоставили простой вариант интеграции, это не защищает клиента, если ключ используется не по назначению. rate limiting хорош, только если он исходит с одного IP-адреса. Если это из распределенной и облачной сети, что можно легко сделать с помощью облачных технологий, ограничение скорости не будет работать. - person Kannaiyan; 25.10.2017
comment
@Kannaiyan Очень простым решением было бы извлечь запросы API от клиента и вместо этого запустить их с внутреннего сервера. Таким образом, вы не раскрываете свои ключи подписки. Таким образом, внешний интерфейс становится просто интерфейсом, в то время как фактические вызовы API выполняются от сервера к серверу на бэкэнде. - person Jeffrey; 30.10.2017