ASP.Net MVC2 Защита сайта с помощью токенов и еще много чего - PullRequest
0 голосов
/ 26 апреля 2010

Я пытаюсь использовать MVC 2 в качестве промежуточного слоя для моего приложения для iPhone. Основным принципом здесь является то, что сайт MVC будет предоставлять API-интерфейсы, которые позволят пользователям размещать данные POST с iPhone и получать данные из базы данных sql, работающей за приложением MVC. Проект MVC 2 облегчит логику.

У меня есть несколько вопросов по этому поводу ... 1. Каков наилучший способ защиты приложения MVC, чтобы только признанные айфоны могли получить доступ к методам GET / POST? 2. Могу ли я использовать учетную запись общего хостинга для SQL Server и начать указывать на нее свои dbconnections? 3. Есть еще какие-нибудь мысли о том, как лучше всего это реализовать?

Я новичок в MVC, но очень рад его использованию ...

Спасибо!

Ответы [ 3 ]

0 голосов
/ 26 апреля 2010

Это действительно вопрос высокого уровня, который вы задаете ...

В этой ситуации я бы как-то привязал уникальный ключ к телефону или пользователю + телефону (зависит от того, как работает iPhone -может ли он вместить нескольких пользователей?).Это может быть сделано несколькими способами, но один из популярных способов - сделать так, чтобы пользователь проходил аутентификацию на вашем сайте и связывал свой телефон со своей учетной записью.Во время этого процесса вы отправляете на телефон уникальный ключ, который он использует для последующих запросов.

Это дает вам несколько вещей:

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

пользовательских подключений - позволяет вам легко хранить пользовательские данные на вашем сайте «в облаке» и позволяет вам мгновенно узнать, кто подключается

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

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

0 голосов
/ 06 февраля 2011

Если это не имеет реального пользовательского интерфейса и используется только для передачи данных, вам, вероятно, лучше создать веб-службу WCF в качестве вашего проекта. Затем вы можете использовать этот веб-сервис из приложения для iphone, используя что-то вроде того, что подробно описано в этом сообщении .

Веб-службы предназначены для этой ситуации и предоставляют множество способов проверки подлинности и безопасности. Плюс, это более ОТДЫХ.

0 голосов
/ 26 апреля 2010

Я не уверен, насколько ваш пост на самом деле о asp.net MVC.

Ваш первый вопрос - как обезопасить приложение, чтобы только признанные айфоны могли получить доступ к методам GET / POST. Это больше похоже на вопрос HTTP, и я думаю, это зависит от вашего определения «безопасный» и того, что вы пытаетесь. Вы можете отправить лицензионный ключ (через HTTPS, я бы предположил) с iPhone и подтвердить его подлинность. Однако ничто не мешает кому-то поделиться этим ключом или использовать его не из iPhone. Вы можете создать хеш или что-то еще при регистрации, а затем проверить его (например, проверка Windows), что может помочь, но всегда найдутся способы обойти это. Короче говоря, вы не сможете по-настоящему протестировать «зарегистрированные iPhone», а скорее то, что вы определяете как «зарегистрированный iPhone», который потенциально может быть подделан, но «достаточно хорош» для ваших нужд.

В MVC проверка должна выполняться на уровне Атрибутов - вы должны украшать свои Действия каким-то атрибутом проверки. Встроенный модуль называется Authorize и работает со встроенным членством ASP.NET. Это не похоже на то, что вы хотели бы использовать, поэтому вы можете захотеть создать свой собственный атрибут для самостоятельной проверки HTTP-запроса.

Что касается использования учетной записи общего хостинга, я не уверен, вопрос. Вы спрашиваете, будет ли учетная запись общего хостинга работать для ваших нужд? Я не знаю ваших потребностей, но виртуальный хостинг, безусловно, может вместить 1) ASP.NET MVC и 2) Базы данных SQL.

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