Защита веб-сервисов jQuery SPA - PullRequest
0 голосов
/ 30 января 2012

Я проектирую проект, который использует jQuery для связи с одним веб-сервисом, размещенным внутри sharepoint (возможно, это спорный вопрос, но я включаю его для фона и подчеркиваю, что состояние сеанса не подходит для среды с несколькими интерфейсами) .

Веб-службы - это службы ASP.Net ASMX, которые возвращают модель JSON, которая затем сопоставляется с пользовательским интерфейсом с помощью Knockout. Чтобы сохранить форму, верно обратное - модель JSON отправляется обратно в службу и сохраняется.

Клиент представил требование о конфиденциальности данных, отправляемых на сервер и с сервера:

  1. Существуют данные, которые следует отправлять только с клиента на сервер.
  2. Существуют данные, которые должны появляться только в определенных представлениях (решаемых с помощью ViewModels, поэтому не слишком озабочены этим)
  3. Данные должны быть защищены от атак классического воспроизведения.

Если не считать проприетарной безопасности, каков наилучший способ защиты веб-службы, и есть ли другие библиотеки, на которые я должен обратить внимание, чтобы помочь мне - либо в JavaScript, либо в .Net

1 Ответ

1 голос
/ 01 марта 2012

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

Сообщения, отправляемые в службу, должны, конечно, быть https.Это ограничивает атаку «человек посередине».Я всегда проверяю, что IP отправляющего клиента совпадает с IP-адресом в заголовке узла.Это может быть подделано, но это делает его немного более раздражающим :).Кроме того, я отправляю метку времени на весь свой JSON перед отправкой на клиенте, а затем проверяю, что он находится на сервере в течение X секунд.Это помогает предотвратить атаки воспроизведения.

Очевидно, что JavaScript небезопасен, и вам всегда нужно помнить об этом.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...