2010-10-20 3 views

ответ

5

В зависимости от случая использования вы можете:

  1. Требовать проверку подлинности (маркер для каждого пользователя) скорость
  2. Предела доступа (х обращений в времени у) доступа
  3. Ограничение по IP
  4. предельный размер сделок
  5. предельный размер ответа за определенный период времени
  6. Спросите людей, чтобы быть хорошим
0

думать с точки зрения инкапсуляции и объема, ограничивая доступ к определенным элементам и компонентам API. например, ur API может иметь внутренние переменные, которые используются во множестве внутренних классов; однако, если разработчик вмешивается в важную переменную, которая может компенсировать весь набор данных в вашем API, то вы определенно хотите ограничить доступ к ней, в одном случае (как часть примера) используется расширение класса или, возможно, передача переменной по мере необходимости и используя локальную декларацию вместо глобальной. также, если вы используете C++ с использованием файлов заголовков, это хороший способ ограничить экспозицию API.

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

PS: Есть также различные сферы применения ключевых слов для методов, а также, например, защиту и т.д.

я надеюсь, что это помогает ...

{} редактировать просто заметил PHP тег, я думаю хороший способ сделать API инкапсуляции ограничивает доступ через POST/GET веб-операции для веба-приложений, и проверки ввода таких запросов ...

+0

Я думаю, что плакат ссылался на защиту от злоупотреблений со скриптов (т. Е. Уменьшает возможность унижения производительности одного пользователя). –

+0

хм ... я полностью неправильно понял его вопрос:/в этом случае я согласен с @vsz, хотя я не знаю о # 6: P – mayotic

0
  1. API-ключи для разработчиков, убедитесь, что API не полностью открыт, чтобы каждый мог делать запросы.
  2. Наблюдение за сеансом для пользователей, например, @vsz. Убедитесь, что каждый пользователь получает уникальный сгенерированный токен и обновляет его время от времени. Лично я использую хэш-файл sha256 случайных данных для создания токена пользователя.
  3. В зависимости от того, кто будет использовать ваш API, может быть полезно ссылаться на любые типы входов/обновлений в вашей базе данных на конкретный ключ API, таким образом, если у какого-либо разработчика есть действительный ключ API, но либо они программируют вредоносные код или кто-то нашел эксплойт, вы всегда можете вернуться и удалить любые вредоносные данные, спам или что-то еще.

может быть, если вы дали более подробную информацию о том, что API предназначается, чтобы мы могли дать лучшие ответы

0

Это все зависит от конкретной природы API. (Насколько ценен ресурс, что API позволяет получить доступ к какому типу злоупотребления ты беспокоишься Etc.?) Некоторые типичные вещи включают в себя:

  • Дроссель доступ к вашему API (например, вызовы в секунду), например,для предотвращения чрезмерной нагрузки на сервер
  • Ограничьте объем данных, которые могут быть получены из API (например, записи данных в месяц), например. чтобы люди не крали ваши данные
  • Требовать от пользователей регистрации до использования API и, возможно, проверить их электронную почту или даже номер телефона, чтобы убедиться, что вы действительно знаете их личность.
  • Требовать от пользователей принять лицензионное соглашение до используя API
  • Ограничить некоторые части API только определенным клиентам
  • Charge деньги за доступ к API (например, когда человек превышает квоту, или хотите специальные условия лицензирования)

Рассмотрите возможность использования внешнего сервис, чтобы сделать все это. Моя компания, WebServius (http://www.webservius.com) является одним из примеров, и есть и другие.

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