Как защитить веб сервис (API)

Добрый день.

Есть веб сервис на php-apache (самописный, чуть-чуть похож на этот). Сервис для работы с базой MySql. Сервис нужен, потому что на хостинге часто возникают проблемы с доступностью базы удаленно (не localhost). Нужно прописывать IP и прочие неудобности. Работать с сервисом будет программа на C#.

Собственно вопрос: Как защитить веб сервис от чужих Evil

  1. Адрес сервиса никто не узнает, как защитить его от публикования, и индексирования?
  2. http://developers.vgorode.ru/wiki/Защищенное_взаимодействие_приложения_с_API — тут написано про подпись md5, а где можно почитать как и от чего она защищает и какую проверку делать на сервере?
  3. Чем (каким алгоритмом) можно шифровать, так чтобы можно было реализовать на php и .net (ну или скачать готовые, бесплатные). Клиент у сервиса будет один — эта программа, поэтому ключи можно вшить прямо в код.
  • Вопрос задан
  • 4581 просмотр
Решения вопроса 1
mark_ablov
@mark_ablov
что шифровать?
шлёте ключ, php проверяет его, если он неправильные, ничего не отсылает, если правильный — высылает данные.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
burdakovd
@burdakovd
@mark_ablov

Кажется мне, что AES не защитит от клонирования злоумышленником легитимных запросов. Там нет ни рандомизированной установки соединения (как в SSL), ни timestamp-ов с проверкой на повторы, как описано по ссылке топикстартера.
Ответ написан
Комментировать
@Tagire
OAUTH?
Ответ написан
Комментировать
@lavel
Самоподписанный СА-сертификат и выданные им сертификаты проверки подлинности клиента, работает на уровне Apache, клиент без сертификата получит ошибку 401 и ничего не увидит. Клиентских сертификатов можно сделать сколько угодно, их так же можно отзывать через revocation list. Так же в Common Name сертификата можно указывать любые данные, идентифицирующие пользователя в системе, т.е. по сертификату можно выполнить и аутентификацию и авторизацию.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы