LINUX.ORG.RU

Запрос с одного сайта на другой. Безопасность.

 ,


1

2

На 1 сайте регистрируется техника - И данные Гетом отправляются на Другой Сайт 2

Как сделать так, чтоб запросы шли только с 1 сайта? $_SERVER[‘HTTP_REFERER’]; ничего не выводит

И вообще, чтоб никто не хулиганил.

Спасибо.

Перемещено hobbit из general

Сделать так. что бы сначала твой сайт принимал данные с формы к себе на бэк. А потом курлом делать запрос с бека на другой сайт. Тогда никто в мире кроме твоего провайдера и админов того сайта не узнает куда делает твой сайт запросы. И это по сути достаточно «безопасно»

romanlinux ★★★
()
Последнее исправление: romanlinux (всего исправлений: 1)
Ответ на: комментарий от romanlinux

Ты ещё монгу голой жопой без пароля выставить предложи и через неё обмениваться данными. Никто же адрес не узнает.

cocucka ★★★★☆
()

Добавьте в гет параметр типа API_KEY=92j392j38dhp03d и проверяйте этот ключ на сайте 2.

mydibyje ★★★
()

И данные Гетом отправляются на Другой Сайт 2

Не надо GET, надо использовать более подходящие verbs, например POST.

Как сделать так, чтоб запросы шли только с 1 сайта?

И вообще, чтоб никто не хулиганил.

Самый простой вариант — использовать HTTP Basic Auth или подпись запросов.

theNamelessOne ★★★★★
()
Последнее исправление: theNamelessOne (всего исправлений: 2)
  1. Сайт №1 передает запрос на свой бэкенд, обрабатывает его (проверяет валидность, например подтверждая аутентификацию и авторизацию пользователя), и делает запрос на сайт №2 с неким API-токеном (можно как параметр запроса, можно как header, можно как куки)
  2. Сайт №2 проверяет API-токен, и если он правильный, то выполняет запрос (если паранойя, можно ещё проверять что IP с которого пришел запрос принадлежит серверу, на котором хостится сайт №1).

Если делать запросы с фронтенда сайта №1, то любая, даже самая изощренная комбинация позволит произвольному пользователю сайта №1 посмотреть в исходники (ну или в историю запросов) и делать такие же запросы самому с помощью curl-а или чего-нибудь похожего. (другой вопрос, может если сайты №1 и №2 независимы, то это не так уж и плохо?)

balsoft ★★
()
Последнее исправление: balsoft (всего исправлений: 2)
Ответ на: комментарий от balsoft

Если делать запросы с фронтенда сайта №1, то любая, даже самая изощренная комбинация позволит произвольному пользователю сайта №1 посмотреть в исходники (ну или в историю запросов) и делать такие же запросы самому с помощью curl-а или чего-нибудь похожего.

Если целью ТС стоит только запрет выполнения запросов с других сайтов, а на запросы из произвольных HTTP-клиентов ему побоку, то это можно решить средствами CORS. Но в большинстве случаев выполнять подобные запросы (которые меняют состояние) с фронта — плохая идея.

theNamelessOne ★★★★★
()
Ответ на: комментарий от balsoft

Дело в том, что на сайте1 сидят обычные пользователи. Зарегистрированные, но пользователи. Которые могут и навредить слегка конкуренту который сидит на этом же сайте.

Мне сейчас мысль в голову пришла. Токен ведь можно сохранять в файле на первом сайте и читать его с 2-го сайта - они на одном хостинге.

— Гениально :-)

kompospec
() автор топика
Ответ на: комментарий от balsoft
если паранойя, можно ещё проверять что IP с которого пришел запрос принадлежит серверу, на котором хостится сайт №1).

Это как делать?

kompospec
() автор топика
Последнее исправление: kompospec (всего исправлений: 1)
Ответ на: комментарий от theNamelessOne

Я согласен, что POST-ом отправлять данные «правильнее»(по смыслу). Так как get это для получения… Но как get и post сказываются на «безопасности», если есть ssl?

romanlinux ★★★
()
Последнее исправление: romanlinux (всего исправлений: 2)
Ответ на: комментарий от kompospec
  1. На уровне фаервола: iptables/nftables/etc
  2. На уровне приложения: в зависимости от языка, но в итоге сводится к сисколлу getpeername на сокете
balsoft ★★
()
Ответ на: комментарий от kompospec

Куки это на самом деле просто HTTP(S)-хедер (Cookie/Set-Cookie). В данном случае это работает потому что с точки зрения сайта №2, сервер на котором хостится сайт №1 будет клиентом.

balsoft ★★
()
Ответ на: комментарий от theNamelessOne

Кстати да, хорошее замечание. Не в качестве защиты сайта от пользователей, а в качестве защиты пользователей от злоумышленников :)

balsoft ★★
()
Ответ на: комментарий от cocucka

Даже там народ поумнее работал несколько лет назад.

peregrine ★★★★★
()
Ответ на: комментарий от cocucka

Ты ещё монгу голой жопой без пароля выставить предложи и через неё обмениваться данными.

Хорошая идея, почему бы и нет.

crutch_master ★★★★★
()
Ответ на: комментарий от theNamelessOne

Плюсую. Некоторые думают что если запроса не видно - то всё ничтяк

kompospec
() автор топика
Ответ на: комментарий от balsoft

Куки сработают???

Тогда все проблемы решены

kompospec
() автор топика
Ответ на: комментарий от peregrine

Я сейчас работаю за 50 руб в час. См. мой сайт

kompospec
() автор топика

Надо просто эндпоинт, на который ты шлёшь данные, на уровне Nginx закрыть от доступа извне с помощью конструкции deny all; allow 127.0.0.1 - и всё. Тогда юзеры туда доступа вообще иметь не будут - только сайты, размещённые на этом же сервере. Т.е. не из браузера со страниц «Сайта 1» в бэкенд «Сайта 2» шли запросы напрямую, а в бэкенд «Сайта 1», который отправит данные в бэкенд «Сайта 2». И никакие куки и токены там не нужны. А вообще межсервисное (внутренее) взаимодействие нынче через grpc делают.

dimuska139 ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.