|
|
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Добрый день Есть внешний сервер - (с++ на fast_cgi) принимает POST запросы и возвращает ответы ... на моей стороне есть HttpClient Код: java 1. вопрос такой я создал запрос и отправил его постом на этот сервер .... получаю некий ответ ... как мне быть уверенным что я получил именно свой ответ ? а не к примеру ответ от такого же соседнего клиента ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 12:13 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Atum1а не к примеру ответ от такого же соседнего клиента ? по ООП получит твой экземпляр? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 12:15 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
AFAIK IP адрес + номер порта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 12:18 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Atum1как мне быть уверенным что я получил именно свой ответ? а не к примеру ответ от такого же соседнего клиента ? Эээ, ну постановка, конечно, убойная. Потому как не очень понятно, почему вдруг ответ тебе должен отличаться от ответа другому клиенту. Твой клиент имеет определенный порт. И сервер посылает ответ именно на этот порт. И если он послал ответ на этот порт, то он это и хотел сделать. Еще, конечно, можно HTTPS включить. Тогда отклик другому клиенты ты, по идее, не можешь читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 12:20 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
я что то подумал, что это объект класса всё внутри инкапсулировал и получит ответ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 12:28 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Petro123я что то подумал, что это объект класса всё внутри инкапсулировал и получит ответ) ну http это вещь без состояния и безличная ... Это раз... сервер может ошибиться и сформировать другой ответ и подсунуть мне ... нужна верификация ... например я могу в параметры добавить sha всех полей и подпись - так же требовать от сервера и как то сверять ... вопрос все такие есть : я сформировал и отправил ПОСТ запрос - на какой то урл ... как мне быть уверенным что в ответ мне придет именно мой ответ? как на уровне соединения это регулируется ? на уровне сервера? на уровне http клиента ? механика какая ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 13:50 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Atum1, Вы смеетесь, издеваетесь или что-то другое? Atum1сервер может ошибиться и сформировать другой ответ и подсунуть мне ... нужна верификация ... Нормальные люди особо защищенные от ошибок системы обычно делают так: 3-и одинаковых сервера. Отправляет запрос на все три. Сравниваем 3-и ответа, если они совпадают - сервера не ошиблись Если один из ответов не совпал с другим - берем тот ответ, который пришел с 2-х серверов. Тот сервер, который имеет свое " особое мнение " - скорее всего ошибся. Если и после этого продолжают "ошибаться и нужна верификация" - ставим 5, 7 и так далее серверов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 13:55 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Atum1сервер может ошибиться вы протокол разрабатывате? Подробнее про задачу. В каком месте кода непонятно? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 14:04 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Atum1на уровне сервера? на уровне http клиента ? Есть такая штука - OSI модель. Она имеет кучу слоев. Помимо этого в самом верхнем слое (application, кажется) может быть еще куча слоев за пределами OSI. И ваш вопрос можно аналогично задать любому из всех этих слоев, а не только HTTP. Для HTTP дает гарантии протокол нижнего уровня - TCP. Он как раз и гарантирует что по HTTP вы получите только свой ответ. А если сервер вернул вам чужой ответ, то это может произойти без всякого HTTP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 14:08 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Atum1как на уровне соединения это регулируется ? Имеет смысл начать читать про Ethernet и TCP/IP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 14:10 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, +1 Например, по AJAX объект в ослике сначала устанавливает канал - рукопожатие. А потом шлёт запрос и ждёт ответ. Так что вопрос автора странный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 14:12 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Atum1сервер может ошибиться и сформировать другой ответ и подсунуть мне ... Защита от криворуких девелоперов, которые делают глобальные переменные? Или что? Atum1нужна верификация ... например я могу в параметры добавить sha всех полей и подпись - так же требовать от сервера и как то сверять ... вопрос все такие есть : Сервер возьмет ответ другого клиента, подпишет его вашими ключами. Что вы тогда делать будете? Вы боретесь с надуманной проблемой. Возможно, вы просто не правильно сформулировали действительно актуальную для вас проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 14:14 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
BlazkowiczAtum1нужна верификация ... например я могу в параметры добавить sha всех полей и подпись - так же требовать от сервера и как то сверять ... вопрос все такие есть : Сервер возьмет ответ другого клиента, подпишет его вашими ключами. Что вы тогда делать будете? Вы боретесь с надуманной проблемой. Возможно, вы просто не правильно сформулировали действительно актуальную для вас проблему. Подмена может быть, но вряд ли на стороне сервера. Или подменили сам сервер (например приникнув в DNS) или, потенциально, злоумышленник мог подменить ряд пакетов с ответом. Но вроде это уже проблемой не является, т.к. HTTPS от всего этого должен спасать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 14:17 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevПодмена может быть, но вряд ли на стороне сервера. О том и речь. Leonid Kudryavtsevпотенциально, злоумышленник мог подменить ряд пакетов с ответом. У этого есть вполне устоявшийся термин - man-in-the-middle attack Leonid KudryavtsevНо вроде это уже проблемой не является, т.к. HTTPS от всего этого должен спасать. Где-то была не так давно интересная статья, про то чего спасает HTTPS, а от чего - нет. Но не могу найти больше. По-моему что-то про перехват сессии в wi-fi сети, даже при наличии HTTPS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 14:24 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, сервер писан на с++ руками, и очень отвратно :-( все руками.... какая там архитектура и как он обрабатывает запросы это большой вопрос... может и не по стандарту... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 15:03 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Atum1сервер писан на с++ руками, и очень отвратно :-( все руками.... какая там архитектура и как он обрабатывает запросы это большой вопрос... может и не по стандарту... Ага. То есть существует какое-то древнее дерьмо мамонта и нужна защита на клиенте. Это же совсем другая постановка вопроса. Но тут все зависит от того что именно этот сервер умеет. Нужно просто найти какое-то значение, которое он умеет возвращать в первозданном виде. Его на клиенте и использовать. Привязываться к HTTP я смысла не вижу, кто запрещает серверу взять ответ другого клиента и смешать его с твоими HTTP заголовками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 15:10 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Atum1сервер писан на с++ если самописный, то всё что угодно может быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 15:10 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Atum1, я бы в продакшен такой сервер не... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 15:11 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Atum1, Валидировать надо именно бизнес логику, а не HTTP. Вот, смотри, запрос же идет так: Клиент -> HTTP клиент -> TCP -> HTTP сервер -> Бизнес логика. И потом обратно. Так вот, если ты решил привязать валидацию к HTTP, то серверу ничего не помешает нафакапить в бизнес-логике и отдать чужой ответ в твой HTTP канал. Именно поэтому валидацию нужно привязывать только к бизнес логике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 15:14 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Возможно проблема с асинхронными запросами? Она решается, например, их нумерацией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 15:21 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Локшин МаркВозможно проблема с асинхронными запросами? Она решается, например, их нумерацией. Это как? Кто их шлёт асинхронно? Если по БЛ плевать на ответы (синхронные) тогда конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 15:37 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
как вариант один сервер(сервис) один пользователь :) можно запустить pool серверов на разные порты и спрятать их за nginx. соотвественно останется настроить и тут уж варианты. 1. можно не более одного запроса на сервер т.е. пока не обработает запрос не может получиться новый. 2. каждый сервер на определенный IP клиента (если они статические или например идентификатор какой нибудь в header запихать чтобы Nginx его отловить мог. ) можно еще чего придумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 15:41 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
llemingкак вариант один сервер(сервис) один пользователь :) можно запустить pool серверов на разные порты и спрятать их за nginx. соотвественно останется настроить и тут уж варианты. 1. можно не более одного запроса на сервер т.е. пока не обработает запрос не может получиться новый. 2. каждый сервер на определенный IP клиента (если они статические или например идентификатор какой нибудь в header запихать чтобы Nginx его отловить мог. ) можно еще чего придумать. Прям рецепт многопоточности для R ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 15:42 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
llemingможно еще чего придумать. )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 15:45 |
|
||
|
Как понять что я получил от http сервера именно свой ответ ?
|
|||
|---|---|---|---|
|
#18+
Вот наболтали. Автор невразумительно описал, что ему надо. Поэтому правильный ответ состоял бы в требовании к нему описать это вразумительно. Вместо этого началось гадание, а что ему может быть нужно. Не объясняет - пусть догадывается сам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2016, 16:07 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39213634&tid=2124162]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 385ms |

| 0 / 0 |
