-1

Я создал веб-приложение в MVC и JQuery, которое отображает/добавляет/редактирует данные по запросу Web API.Безопасность обработки HTML DOM

Я вызываю свой веб-API и сохраняю информацию в HTML DOM для дальнейшей работы с моим приложением.

Вопросы:

  1. Как предотвратить любое от просмотра и изменения данных, хранящихся в DOM?
  2. Как запретить другим пользователям доступ к моему веб-API? Должен ли я шифровать данные для первой проблемы и использовать защиту на основе токенов для решения моей второй проблемы или есть какое-либо другое лучшее решение для данной проблемы?
+2

Это тоже ** слишком широкое ** и ** offtopic ** для SO.Вы должны задать вопросы безопасности в сообществе информационной безопасности –

+0

Ответ на первый вопрос: не следует хранить конфиденциальные данные в DOM, поэтому вы должны решить этот вопрос. Ответ на второй вопрос заключается в использовании аутентификации и авторизации, встроенных в ASP.NET. –

+0

. Я не храню конфиденциальную информацию, такую ​​как пароль. Когда пользователь (любой пользователь) посещает определенную страницу, на веб-сайт вызывается ajax-вызов API генерирует идентификатор, который я храню в DOM, чтобы хранить дополнительные данные против этого идентификатора. –

ответ

2

Ответ на первый вопрос: вы должны обеспечить подключение к SSL. Если вы этого не сделаете, вы не должны передавать полную конфиденциальную информацию. Если вы используете SSL, может возникнуть необходимость отображать конфиденциальные данные в DOM. Как бы то ни было, не путайте это с попыткой использовать DOM для обфускации конфиденциальных данных, скрывая его в атрибуте, например.

Ответ на второй вопрос заключается в использовании аутентификации и авторизации, встроенных в ASP.NET. И это будет только ограниченный обзор, потому что это одна из самых больших областей ASP.NET.

Необходимо понять, что ответ запроса ASP.NET является конвейером, запросы будут распространяться через объекты, называемые промежуточным программным обеспечением. Средство промежуточного программного обеспечения может изменять запросы на пути, если они закодированы для этого, тогда они могут изменять ответ и останавливать транзит запроса по конвейеру. Затем ответ будет возвращаться через посредство, через которое он прошел (в обратном порядке), и, наконец, будет отправлен обратно пользователю, см. рис. 1.

middleware

фигура 1

Большинство (если не все) люди будут ставить аутентификацию и авторизацию в ППО. Аутентификация говорит, вы тот, кого вы говорите, обычно с помощью комбинации имени пользователя и пароля. Авторизация говорит, что если этот человек является тем, кем они говорят, они разрешают доступ к запрошенным ресурсам.

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

Вы можете использовать ASP.NET атрибуты для ограничения доступа к ресурсам:

[Authorize] 
public class SecretController 
{ 

} 

Если вы хотите посмотреть на более сложные проверки подлинности и авторизации инструментов, IdentityServer, кажется, де-факто решение «предприятие».

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

+0

Итак, вместо того, чтобы делать прямой вызов веб-API со страницы, я должен сделать веб-API вызова из приложения и сохранить эти данные в ** сеансе ** и сделать каждый вызов веб-API из моего приложения не с веб-страницы, видимой пользователю? –

+1

Нет, совсем нет. Ваш комментарий здесь говорит мне, что вы не понимаете ASP.NET WebApi. Поэтому я хотел бы предложить вам, что вы читаете, как работает ASP.NET WebApi, есть действительно действительно хорошие книги по этому вопросу. В ответ на ваш комментарий, однако, вы должны выполнить запрос WebApi со страницы через ajax или что-то еще, '$ .ajax ('api/secret')' –

+0

Да, я изучаю. Спасибо за помощь. –

Смежные вопросы