API скрипты и особенности их использования

Автор: Палаш Б.В.

Журнал: Форум молодых ученых @forum-nauka

Статья в выпуске: 1-2 (29), 2019 года.

Бесплатный доступ

В статье описываются основные принципы работы API скриптов, рассказана их важность в современном программировании. Рассматриваются основные способы защиты и передачи информации при работе с удаленными приложениями.

Передача данных, программное взаимодействие, алгоритмы хеширования

Короткий адрес: https://sciup.org/140284653

IDR: 140284653

Текст научной статьи API скрипты и особенности их использования

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

API (программный интерфейс приложения, интерфейс прикладного программирования) – это набор классов и методов с помощью которых один программный продукт может взаимодействовать с другими программами [1].

Взаимодействие между программными продуктами посредствами API скриптов может происходить многими способами, но для рассмотрения были взяты два самых популярных – это методы POST и GET запросов.

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

Главными минусами GET запросов является ограниченное количество данных, которые можно передать через него и возможность редактирования этих данных без каких-либо помех самим пользователем, что может негативно сказаться на работе проекта.

В отличии от GET, параметры POST запроса не отображаться в адресной строке браузера, по этой причине пользователь не в состоянии увидеть или изменить передаваемые данные. Так же POST запрос не страдает проблемой, связанной с длиной отправляемых данных (можно передавать данные или файлы любых объемов) [2].

Рисунок 1. Пример работы POST и GET запросов

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

Способы для передачи данных очень важная часть любого API скрипта, однако, для того чтобы передать данные другому проекту нужно быть уверенным, что проект сможет прочитать такие данные. В связи с этим встает вопрос формата передачи данных в скриптах, ведь не все языки программирования хранят информацию одинаково и не во всех языках программирования существует такие типы данных. Для решения задачи взаимодействия скрипта и приложения возможно использовать JSON формат.

JSON – Это один из самых популярных форматов данных основанный на тексте [3]. С помощью простого синтаксиса возможно легко сохранять как простые цифры и строки, так и массивы, объекты, используя при этом не что иное как текст. Так же можно связывать объекты и массивы, что позволяет создавать сложные структуры данных. После перевода данные в форма JSON мы можем передавать его любым доступным нам способом ведь в результате мы получаем лишь текстовую строку. На данный момент библиотека JSON написана практически для каждого языка программирования, а в некоторых входит в стандартный набор, но даже если в выбранном языке программирования нет данной библиотеки зная ее формат можно написать парсер с JSON самостоятельно.

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

Первым способом для обеспечения безопасности IP ключа является передача пост запросов по HTTPS протоколу. HTTPS ( HyperText Transfer Protocol Secure ) – это усовершенствованный протокол который взял свое начало от HTTP [4]. Данные передаваемы в HTTPS протоколе отправляются через криптографические протоколы SSL или TLS. В отличие от HTTP в котором для передачи используется 80 TCP-порт, для HTTPS по умолчанию используется TCP-порт 443. Использование данного порта дает возможность получить защиту от снифферских атак или от атака через посредника (Прямое подключение к каналу пользователя).

Главная проблема HTTPS связана с возможностью анализирования входящего и исходящего трафика. Суть данной проблемы связана с тем, что данные передаются по SSL или TLS протоколу данные протоколы изменяют только содержимое файла, но не влияют на его размер и скорость прохождения. В связи с этим можно без каких-либо трудностей отлавливать передаваемые пакеты читать их или заменять другими.

Второй способ для обеспечения защиты API скрипта это ввод системы ключевого доступа. Суть данной системы состоит в том, чтобы запретить доступ к самому скрипту разработчикам, не зарегистрированным на сайте и не прошедшим одобрение. Такая система работает на большинстве API скриптов, в частности платежный агрегатор Free-kassa использует такой уровень доступа. Зарегестрированному разработчику выдается специальный набор ключей и паролей которые он передает в API скрипт вместе со своим запросом на сервер. Сервер проверив подлинность ключей и в случае положительного значения выдает результат.

Формирование подписи в платежной форме

Подпись для платежной формы формируется путем нахождения MDS-хеша от строки

"ID Вашего магазина:Сумма платежа:Секретное слово:Номер заказа", пример на PH P:

Пример платежной формы:

$merchant_id = "7012“;

$secret_word = 'secret'3

$order_id = '154';

$order_amount = '106.11’;

Esign = md5(5merchant_id. 1: 1 . $order_arnount.': ' .$secret_word. ' :'.$order_id)

’>

’>

Cinput type='hidden’ name=’lang' value=’ru‘>

'>

Список литературы API скрипты и особенности их использования

  • WINDOWS API [Электронный ресурс] URL: http://system-repair.net (дата обращения: 01.01.2019).
  • POST и GET [Электронный ресурс] URL: http://php.net/ (дата обращения: 01.01.2019).
  • Введение в JSON [Электронный ресурс] URL: http://json.org/ (дата обращения: 01.01.2019).
  • HTTPS | MDN [Электронный ресурс] URL: https://developer.mozilla.org (дата обращения: 01.01.2019).
  • Функции обработки строк [Электронный ресурс] URL: http://www.php.su (дата обращения: 01.01.2019).
Статья научная