Коммуникационный API Django React

У меня замешательство, и это убивает быть внутри. Когда мы работаем с веб-сайтом, который использует React во внешнем интерфейсе и Django во внутреннем интерфейсе, мы создаем API в Django, а затем вызываем конечные точки API в нашем приложении реагирования для получения данных. Затем заполните наш интерфейс данными ответа.

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

Но точно так же хакер может сделать много запросов на этой конечной точке сервера и, таким образом, повлиять на наш сервер, возможно, вывести его из строя.

Первая страница нашего сайта не требует аутентификации. Домашняя страница. Домашняя страница практически не требует входа в систему. Поэтому новые люди пытаются получить к нему доступ. Это нормально. Ненормально то, что кто-то пытается получить доступ к этой конечной точке за пределами браузера. Мы должны убедиться, что запрос поступает из клиентского браузера.

Пожалуйста, помогите мне прояснить мои заблуждения.

Я пробовал читать много статей. Они говорят про jwt, но речь идет об аутентификации, и первый запрос дает токен только на основе имени пользователя и пароля!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Вы можете проверить пользовательский агент, чтобы узнать, пришел ли запрос из браузера или нет, но, скорее всего, это пустая трата времени, пользовательский агент устанавливается клиентом и может быть установлен по своему усмотрению. Я на самом деле не рекомендую этого делать, все, что вы делаете с пользовательским агентом, обычно следует рассматривать как необязательное и, вероятно, в попытке улучшить взаимодействие с пользователем, так сказать, в сотрудничестве с пользователем. Тот, кто пытается рассылать спам в сервисе, скорее всего, изменит свой пользовательский агент, если захочет. Таким образом, отдача от затраченного времени, вероятно, довольно низкая. Но если вы хотите посмотреть, вот список пользовательских агентов https://gist.github.com/pzb/b4b6f57144aea7827ae4.

Скорее всего, вы захотите установить ограничение скорости. Cloudflare — популярный выбор, я не так уж много знаю о различных сервисах, но, похоже, он нравится людям https://www.cloudflare.com/learning/bots/what-is-rate-limiting/.

Важно то, что не имеет значения, исходит ли запрос из браузера или нет, в большинстве случаев ограничение скорости работает по IP-адресу, поэтому оно хорошо справляется с блокировкой чрезмерных запросов с одного IP. Тогда, конечно, кто-то, кто занимается эксплуатацией сервиса, может иметь доступ к нескольким IP-адресам и обойти базовое ограничение скорости, а затем начинается обычная гонка вооружений между стратегиями использования сервисов и стратегиями защиты, вы распределили отказ в обслуживании и защиту от это https://www.cloudflare.com/ddos/.

Так что это сложная область, вам не нужно заходить слишком далеко, просто все, что вам нужно для вашей ситуации, я думаю, что это самое важное, всегда полезно знать немного больше, поэтому, если вам когда-нибудь понадобится больше важные меры предосторожности: вы знаете, что делать, поэтому можете прочитать об ограничении скорости. Есть и другие стратегии, но ограничение скорости кажется хорошим началом. Вы легко сможете найти информацию о защите сервера от различных вещей, которые вам не нужны, вот еще одна ссылка от Cloudflare https://www.cloudflare.com/learning /ddos/how-to-prevent-ddos-attacks/#:~:text=DDoS%20prevention%20methods&text=Several%20methods%20for%20reducing%20this,ports%2C%20protocols%2C%20and%20applications. И вообще, вы можете поискать информацию о защите общедоступных веб-сервисов.

Что касается того, следует ли вам внедрять какую-либо форму защиты и что именно вы реализуете, это полностью зависит от ситуации. Я бы посмотрел; будет ли ваша услуга специально целевой, и в этом случае вы можете рассмотреть возможность ограничения скорости и т. д. Может быть, некоторые боты просто будут делать запросы случайно, когда находят услугу, может быть, несколько запросов, на самом деле не имеет значения .

Затем важно учитывать, каковы последствия любого события, какой сервис вы используете, какое влияние и на кого, это личный сервис, который вы можете перезапустить, например, хобби, стартап, компания с большим количеством пользователей и, в конечном итоге, договорное время безотказной работы... и т. д. Также хостинг, если он размещается на фиксированных ресурсах, вам, возможно, придется перезапустить. Размещен ли он на каком-либо сервисе, фиксирована ли цена, могут ли у вас возникнуть неожиданные счета на огромные суммы из-за того, что к вашему сервису так часто обращаются.

Если последствия рассылки спама/атаки на службу важны, важно принять дополнительные меры предосторожности. Что касается ограничения скорости, оставляя услугу доступной, да, это так, но вам нужна доступная услуга, вы ограничиваете возможность неправильного использования. Другой вариант — капча, если вы хотите получать более вероятны запросы только от пользователей.

Спасибо за Ваш ответ. Это помогло мне понять, что мне теперь делать. Но у меня есть еще один вопрос. Что делает в этом случае большинство людей? Оставляют ли они свои API как есть? Или они вводят ограничение скорости? Однако добавление ограничения скорости не делает его недоступным.

Saikat Islam 30.05.2024 09:52

конечно, пожалуйста. На самом деле, исходя из контекста ситуации, я добавлю, чтобы ответить на несколько вещей, которые, по моему мнению, было бы важно принять во внимание.

Max 31.05.2024 16:20

Другие вопросы по теме