Нет идентификатора uber, который поставляется с веб-запросом, который сообщает вам, кто находится за запросом, независимо от того, как был инициирован запрос (браузер, cURL, Postman, node.js app, приложение PHP и т. Д. ..).
Этот вопрос довольно часто встречается среди новых веб-разработчиков. В конце концов, это сводится к двум вещам:
требуя от пользователей, чтобы иметь учетную запись, войдите на этот счет, чтобы использовать службу, требуя учетные данные при каждом использовании сервиса, а затем отслеживать их использование в посмотрите, соответствует ли он вашим правилам использования. Если это не так, вы можете запретить эту учетную запись.
Оцените пользователей, ограниченных пользователем или по IP-адресу, или по какой-либо их комбинации. Если они превышают определенный предел скорости, вы можете замедлить или запретить доступ.
Браузер предоставляет куки-файлы, поэтому вы можете попытаться идентифицировать повторяющихся пользователей через куки-файлы браузера. Но это может быть побеждено путем очистки файлов cookie. Файлы cookie предназначены для браузера, поэтому вы не можете сопоставить одного и того же пользователя с несколькими устройствами или с несколькими браузерами с простым файлом cookie.
cURL и Postman не предоставляют никакой идентифицирующей информации по умолчанию, кроме исходящего IP-адреса. Вы можете попытаться отслеживать IP-адрес, но есть некоторые проблемы с использованием только IP-адреса, потому что корпоративные пользователи могут проходить через прокси-сервер, который заставляет их всех появляться с одного и того же IP-адреса. Если вы запретите одного пользователя за неправильное поведение, это может затронуть множество других невинных пользователей.
Если вы посмотрите, как Google, Facebook и т. Д. Делают это, все они требуют, чтобы вы создали какую-то учетную запись, а затем предоставили учетные данные для этой учетной записи с каждым запросом. Это позволяет им отслеживать использование и управлять трафиком, если это необходимо. И для бесплатного использования у них обычно есть ограничения по скорости, которые ограничивают, как часто вы можете совершать вызовы API. Это не позволяет одному пользователю использовать больше, чем соответствующий ресурс загрузки службы. И это позволяет им обнаруживать и регулировать учетные записи, которые злоупотребляют системой.
Еще один шаг к этому связан с тем, как создается учетная запись, потому что вы не хотите, чтобы злоумышленник мог запускать скрипт каждые 10 минут, чтобы автоматически создать новую учетную запись. Существует множество схем защиты этого. Наиболее распространенным является просто требование некоторых доказательств того, что человек участвует в создании новой учетной записи (captcha, question/answer и т. Д.), Которые предотвращают автоматическое создание учетной записи. Другие проверки могут потребовать действительную кредитную карту, уникальную проверку адреса электронной почты и т. Д.
Как вы определяете происхождение? Айпи адрес? Смотрите: http://stackoverflow.com/questions/12349251/restrict-access-to-node-js-based-http-server-by-ip-address – vossad01