Типы HTTP-аутентификации и как создать безопасную базу данных?

Несколько месяцев назад я работал над приложением iOS (iphone), которое позволяло пользователям создавать некоторые виды событий и публиковать их как файлы XML / JSON на веб-сервере. Затем через их устройство они могли просматривать события от разных пользователей и т. Д.

Идея построить все это была довольно основательно. Когда приложение было запущено в первый раз, приложение подключилось к URL-адресу и попросило идентификатор пользователя (что уникально для каждого пользователя). Затем каждый раз, когда пользователь хотел что-то публиковать, мы использовали базовую аутентификацию HTTP и отправляли в виде заголовка идентификатор пользователя и XML-файл, содержащий всю информацию о созданном событии. Я никогда не работал на стороне сервера, поэтому я понятия не имел, насколько безопасна вся система.

Несколько дней назад я начал работать над моим приложением, которое является той же идеей, поэтому я начал работать на стороне сервера (php). Прежде чем я начал, я хотел увидеть, насколько безопасен предыдущий мой проект, и я был шокирован, никакой безопасности не было. Просто используя простой веб-отладчик (сниффер), я смог увидеть, где мое приложение подключилось, чтобы запросить идентификатор пользователя, как форма каждого XML-файла была отправлена ​​в базу данных и как сервер ответил.

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

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

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

2 Solutions collect form web for “Типы HTTP-аутентификации и как создать безопасную базу данных?”

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

Используйте SSL для предотвращения атак типа «человек-в-середине».

Поэтому, если кто-то просто хотел наполнить базу данных миллионом идентификаторов пользователей или миллионами событий, было бы очень просто создать скрипт php для этого.

Это характер сетевой коммуникации. Используйте эвристику для ограничения количества нежелательных данных. Некоторые примеры:

  1. Один user_id может создавать не более одного события в секунду.
  2. Пусть клиент подписывает запрос для user_id и проверяет подпись на сервере.

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

«какую проверку подлинности я должен использовать, чтобы не было видно, какие файлы обмениваются между сервером и пользователем (XML)»

единственный «реальный» ответ на это – установить сертификат ssl , затем использовать протокол https

  • Есть ли способ генерировать PDF-файл из XML / HTML-шаблона в iOS
  • Как сопоставить XML textContent с RestKit?
  • iOS: загрузка, разворот, декодирование и анализ большого файла
  • NSXMLParser: ошибка при попытке разрешить и проанализировать внешний объект
  • XCODE NSXML изменяет значение элемента
  • Ошибка Parser Error Domain = NSXMLParserErrorDomain Code = 4 «Операция не может быть выполнена».
  • NSXMLParser анализирует XML-файл, закодированный с использованием Windows-1256
  • Как скопировать пользовательскую инфраструктуру ios с помощью plugin.xml на Phonegap 3
  • Запись XML-файла в iOS с помощью Unity (с использованием C #)
  • Каков наилучший способ анализа XML из URL-адреса для iOS?
  • Разбирайте XML-файл в кусках, не дожидаясь полной загрузки в Swift
  • синтаксический анализ сложной структуры XML с использованием NSXMLParser
  • Interesting Posts

    Цель c проверить, что Bluetooth Availability Changed

    обновление моего приложения, чтобы поддерживать только iOS 4.3+, что происходит с пользователями iOS <4.3?

    iOS Swift: как подготовить ячейку для повторного использования

    Отключить клавиатуру для UITextfield

    Обратный вызов HTML5 Audio не работает на сафари / iOS

    Аутентификация AFNetworking с веб-службой

    Как я могу удержать объекты от выпуска при использовании ARC Objective-C с Xcode 4.2?

    «DayCalendarUnit устарел. Вместо этого использовать NSCalendarUnitDay 'не работает

    Как сравнить лучший распознаватель речи для iPhone?

    «Тип выражения неоднозначен без дополнительного контекста» – ссылка на appDelegate

    Не удается получить текущий токен FBSDKAccessToken правильно в swift 3 / FBSDK 4.17

    Как найти, если текст UILabel сокращен / сжат?

    Ionic Keyboard не работает на поля ввода / textarea в Salesforce1 на iOS

    Бесконечный прокручиваемый фон в SpriteKit

    Подключение сервера к клиенту в GameKit

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.