Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC5. Живой поиск. Защита. / 25 сообщений из 50, страница 1 из 2
26.12.2014, 03:06
    #38843459
elkapitano
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
На странице имеется живой поиск, он обращается к web api сервису, как можно ограничить сервис, чтоб он был недоступен по прямому адресу.
Какую защиту можно сделать, чтобы предотвратить получению злоумышленником всей информации используя сервис

Например:
Есть товары на складе от А до Я.
При заходе на страницу пользователь вводит в текстовое поле букву "А" и ему выдаётся товары начиная с буквы "А"
Но если пользователь захочет получить список товара используя прямую ссылку например - www.testsite.com/mytestservice?getData="a", у него бы нечего не получилось
...
Рейтинг: 0 / 0
26.12.2014, 08:47
    #38843498
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
никак
любые действия, которые может делать пользователь, может делать и злоумышленнник (ибо пользователь может являться злоумышленником)

авторизация, бан, если сервер засекает сканирование по каким-то типичным признакам, меры административного воздействия на пользователя.
...
Рейтинг: 0 / 0
26.12.2014, 10:06
    #38843544
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
1. Сервис вызывается на стороне сервера приложения? Тогда как злоумышленник может узнать его адрес? Разве, что взломав сервер сам сервер приложений.
2. Использовать безопасность на уровне сервиса. В приложении в конфиге будут учетные данные сервиса. А вот просто руками вызвать сервис не получится без авторизации.
...
Рейтинг: 0 / 0
26.12.2014, 10:22
    #38843560
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
elkapitanoНа странице имеется живой поиск, он обращается к web api сервису, как можно ограничить сервис, чтоб он был недоступен по прямому адресу.
Какую защиту можно сделать, чтобы предотвратить получению злоумышленником всей информации используя сервисОтделить поиск от "всей информации".
...
Рейтинг: 0 / 0
26.12.2014, 14:53
    #38843876
elkapitano
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
Всем спасибо за ответы.

МСУ2. Использовать безопасность на уровне сервиса. В приложении в конфиге будут учетные данные сервиса. А вот просто руками вызвать сервис не получится без авторизации.
Можно тут поподробнее?
...
Рейтинг: 0 / 0
26.12.2014, 15:33
    #38843944
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
elkapitanoМожно тут поподробнее?
http://codearticles.ru/articles/2527
...
Рейтинг: 0 / 0
26.12.2014, 17:21
    #38844063
elkapitano
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
МСУ,

Непонятно где выполнять этот код :
Код: c#
1.
2.
3.
var api = new Api(new Uri("http://localhost:44199/odata"));
api.Credentials = new NetworkCredential("test", "test");
var categories = new DataServiceCollection<Category>(api);


И что это за класс "Api"
...
Рейтинг: 0 / 0
26.12.2014, 18:09
    #38844103
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
elkapitano, это кодогенерированный класс odata сервиса. Идея такая же, указать NetworkCredential для вызова твоего сервиса. В чем проблема-то?
...
Рейтинг: 0 / 0
26.12.2014, 18:25
    #38844117
elkapitano
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
МСУ,

Сервис вызывается ajax запросом со страницы, и как тогда применить этот код?
...
Рейтинг: 0 / 0
26.12.2014, 18:48
    #38844140
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
elkapitanoСервис вызывается ajax запросом со страницы, и как тогда применить этот код?
Я вот тут 17055366 задал вопрос про вызов сервиса, ты его проигнорировал. Теперь мы узнаем, что сервис вызывается на стороне клиента. Плохая новость, плохая архитектура. Таким образом задача 100% не решается, ведь ты открываешь всем адрес сервиса. Чтобы задачу решить, нужен вызов сервиса на серверной стороне. Поэтому твой аякс запрос должен сначала пойти в твой метод контроллера, а уже из него должен вызываться сервис.
...
Рейтинг: 0 / 0
26.12.2014, 19:56
    #38844184
elkapitano
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
МСУ,

авторЧтобы задачу решить, нужен вызов сервиса на серверной стороне. Поэтому твой аякс запрос должен сначала пойти в твой метод контроллера, а уже из него должен вызываться сервис.
Большое спасибо, так и сделаю.
...
Рейтинг: 0 / 0
29.12.2014, 15:03
    #38845694
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
elkapitano,

Все достаточно стандартно.
1) Используйте Post вместо Get запроса.
2) Используйте защищенный канал https вместо http, желательно подписанный Thawte или Verisign.
...
Рейтинг: 0 / 0
30.12.2014, 11:14
    #38846339
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
Axeleronelkapitano,

Все достаточно стандартно.
1) Используйте Post вместо Get запроса.
2) Используйте защищенный канал https вместо http, желательно подписанный Thawte или Verisign.И что это даст?

Стандартная практика - это сайт разместить в DMZ, а сервис в другом месте локальной сети.
Таким образом сайт будет доступен извне, сервис будет доступен сайту, но извне сервис будет не доступен.
...
Рейтинг: 0 / 0
30.12.2014, 12:18
    #38846392
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
skyANA,

Бузусловно сервис и сайт будут разнесены по 'коробкам'. И это даст защиту, искомую TC.
...
Рейтинг: 0 / 0
30.12.2014, 12:23
    #38846397
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
skyANA,

Если Вы используете https протокол, Ваш сервис будет доступен только приложению/сайту, а все сообщения шифруются на транспортном уровне механизмом, доступном для понимания только данному приложению/сайту. Почему по Вашему мнению это ничего не даст?
...
Рейтинг: 0 / 0
30.12.2014, 12:56
    #38846451
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
AxeleronskyANA,

Если Вы используете https протокол, Ваш сервис будет доступен только приложению/сайту, а все сообщения шифруются на транспортном уровне механизмом, доступном для понимания только данному приложению/сайту. Почему по Вашему мнению это ничего не даст?На сайте есть публичный поиск товара. При чём тут POST и SSL?

Вот Вам GET over HTTP: http://www.ozon.ru/?context=search&text=MVC5
...
Рейтинг: 0 / 0
30.12.2014, 13:03
    #38846464
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
skyANAAxeleronskyANA,

Если Вы используете https протокол, Ваш сервис будет доступен только приложению/сайту, а все сообщения шифруются на транспортном уровне механизмом, доступном для понимания только данному приложению/сайту. Почему по Вашему мнению это ничего не даст?На сайте есть публичный поиск товара. При чём тут POST и SSL?

Вот Вам GET over HTTP: http://www.ozon.ru/?context=search&text=MVC5

Вы привели пример, где как раз получается весь список товара. TCу необходимо как раз избежать этого, если я верно понял.
...
Рейтинг: 0 / 0
30.12.2014, 13:05
    #38846467
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
Публичный поиск товара не означает возможность дать весь список поиска по начальным буквам наименований товаров, что в Вашем примере как раз и происходит. Тут никакой выделенный сервер для сервиса не поможет.
...
Рейтинг: 0 / 0
30.12.2014, 14:08
    #38846560
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
Еще как более простой и менее затратный вариант реализации, если веб-сервер и сервис-сервер - это два разных сервера, то прост давать доступ к сервису по IP-адресу разрешенных серверов. Тут можно и GET и POST использовать - как больше нравится, так как ничего не меняет. Если же веб-сервер и сервис-сервер - это одна физическая единица, то делайте запрос к сервису через POST и передавайте в HttpHeader какой-то уникальный токен, который будет проверяться на сервисной стороне, и если он корректный, то сервис будет отдавать результат поиска. Тогда и SSL не нужен.
...
Рейтинг: 0 / 0
30.12.2014, 16:49
    #38846735
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
AxeleronПубличный поиск товара не означает возможность дать весь список поиска по начальным буквам наименований товаров, что в Вашем примере как раз и происходит. Тут никакой выделенный сервер для сервиса не поможет.Вы так и не поняли, что нужно ТС :)

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

И есть публичный сайт, которому доступна лишь одна функция - это поиск товара.
Вот сайт размещается в DMZ, общается с сервисом, при этом извне нельзя обратиться к сервису и получить доступ к полному функционалу.
...
Рейтинг: 0 / 0
30.12.2014, 16:50
    #38846737
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
AxeleronЕще как более простой и менее затратный вариант реализации, если веб-сервер и сервис-сервер - это два разных сервера, то прост давать доступ к сервису по IP-адресу разрешенных серверов.Гениально, Вы изобрели DMZ!
...
Рейтинг: 0 / 0
30.12.2014, 17:03
    #38846754
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
Мда, Axeleron жжет... :)
...
Рейтинг: 0 / 0
30.12.2014, 17:07
    #38846759
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
МСУ,

А что это за DMZ такой зверь? :))
...
Рейтинг: 0 / 0
30.12.2014, 17:15
    #38846765
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
skyANA,

Я понял вопрос ТСа так как я понял ) А Ваш совет "Отделить поиск от "всей информации" я бы серьзно даже не воспринял - просто слишком обще. TС захотел поподробнее, я поподробнее и рассказал в плане реализации. Согласен, c SSL немного перебор. Для Web API лучше всего использовать уникальный токен и Post метод.
...
Рейтинг: 0 / 0
30.12.2014, 17:21
    #38846767
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC5. Живой поиск. Защита.
AxeleronskyANA,

Я понял вопрос ТСа так как я понял ) А Ваш совет "Отделить поиск от "всей информации" я бы серьзно даже не воспринял - просто слишком обще.Надо было спросить, что я имел в виду
AxeleronTС захотел поподробнее, я поподробнее и рассказал в плане реализации. Согласен, c SSL немного перебор. Для Web API лучше всего использовать уникальный токен и Post метод.Да не нужен ему никакой токен. Зачем внутри локальной сети какие-то токены?
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC5. Живой поиск. Защита. / 25 сообщений из 50, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]