Что предотвращает сторонний доступ и «майнинг» при подаче данных на внешний интерфейс через REST API?

Просто в качестве контекста, я не веб-разработчик или что-то в этом роде, но иногда я пробую небольшие проекты в основном для развлечения, поэтому я могу неправильно использовать некоторые термины.

Недавно я понял, что существует два шаблона для предоставления данных на странице:

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

Во втором шаблоне я бы полагался на API в качестве моста между моим интерфейсом и моей базой данных, и в основном мой интерфейс делал бы вызовы к конечным точкам /api/something, которые возвращали бы объекты json, используемые для заполнения страницы.

Хотя это кажется наиболее распространенным шаблоном, он вызывает у меня тревогу, потому что: Что мешает людям получить доступ к моему API из сторонних приложений и получить мои данные в хорошо структурированном виде? Например, если Stack Overflow будет загружать вопросы во внешнем интерфейсе через вызов API, этот API должен быть открыт, а код доступен во внешнем интерфейсе. Что помешает кому-то создать клон Stack Overflow, используя его данные, или просто постоянно вызывать API для интеллектуального анализа данных?

Я понимаю, что данные можно просто очистить, когда страница полностью отрисовывается серверной частью, но это все же кажется менее проблематичным, чем открытое предоставление данных в хорошо структурированном объекте json.


person Freguglia    schedule 10.10.2020    source источник


Ответы (1)


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

Наиболее очевидные способы решения этой проблемы — это обнаружение ботов (чрезмерные запросы от отдельных IP-адресов/IP-блоков) и размещение вещей за аутентификацией.

Если аутентификация включена, вы можете ограничить скорость для каждого пользователя и предотвратить автоматическую регистрацию с помощью Captchas.

Что помешает кому-то создать клон Stack Overflow, используя его данные, или просто постоянно вызывать API для интеллектуального анализа данных?

Люди активно парсят SO и создают сайты с украденным контентом. Однако ценность stackoverflow выходит за рамки только содержимого. Stackoverflow.com — это место, где есть люди, и у людей нет причин использовать эти другие сайты.

person Evert    schedule 10.10.2020
comment
Есть много нежелательных совпадений в Google для скопированных с сайта вопросов и ответов SO. - person user2864740; 10.10.2020