GM_pAnda
@GM_pAnda
Бездельник

API запись в базу данных?

Доброго времени суток, возник вопрос как можно реализовать API доступ который будет писать, обновлять базу? Интересует сам принцип работы. Нельзя же просто иметь ссылку на запись в базу..
Что-то вроде
/api/users/?action=getAllUsers // Получаем всех пользователей GET Запросом..
/api/users/?action=create
/api/users/?action=update&user_id=534
/api/users/?action=delite&user_id=957

Данные отправлять буду POST запросом AJAX// Но, тут вопрос стоит, об удалённом доступе? Ведь нельзя удалённо отправлять POST данные на сервер..
А так же как обеспечить безопасность, что не какой любопытный не смог воспользоваться API? Нужна проверка какая-то.. Про ключу что ли.. Что-то вроде..
/api/users/?action=getAllUsers&key=H35lgjs359gdsjl^648sfh523fa9sgwdlgs
Но, ведь смысла в этом нет передавать ключ в открытом виде..
  • Вопрос задан
  • 1576 просмотров
Пригласить эксперта
Ответы на вопрос 2
Ведь нельзя удалённо отправлять POST данные на сервер

С чего вы это взяли?

/api/users/?action=getAllUsers&key=H35lgjs359gdsjl^648sfh523fa9sgwdlgs

Ключ должен быть зашифрован и передан POST/GET запросом вместе с остальными данными по протоколу https.

RESTful API PHP - вам нужно двигаться в этом направлении.
Ответ написан
gzhegow
@gzhegow
aka "ОбнимиБизнесмена"
На самом деле задача глубокая и очень сильно субьективная - типа как хочешь так и делай, вопрос безопасности безусловно всегда будет болеть.

Вот мои зарисовки:
https://vk.com/away.php?to=https%3A%2F%2Fdocs.goog...

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

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

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

У кого денег мало - в гет параметр засовывают пароль и просто его проверяют.
Средние бюджеты - делают регистрацию аккаунтов и выдают логины пароли, но это не годится для публичных сервисов, т.к. остаются долбоебы кто ходит в интернет с компа соседа и пиздит чужие пароли - для них и придумали токены и разрешение через СМС при малейшем намеке на смену местоположения.

На текущий момент самой четкой и безопасной системой считается белый список ip-адресов одновременно с ssh ключами и переброшенными портами от ssh. Ключи обеспечивают уникальность человека, ip - дополнительно указывают что скорее всего это кто-то конкретный пытается замутить какую-то дичь, а порты перебрасываются чтобы уменьшить число атак тупых ботов по 22. Но тут косяк, что ssh ключи они потому и ssh что позволяют получить доступ к консоли компа, а не допустим к пхп скрипту, так что можно только принцип подсмотреть.

Но допустим с этими ключами дикая несогласованность у создателей операционных систем, потому что они типа бы жутко подрывают "анонимность интернета". Поэтому обьяснить простому клиенту на сайте что такое пара ключей почти невозможно - это сьедает любой мозг, когда начинаешь путаться между приватным публичным, серверным приватным и серверным публичным и какой когда для чего нужен.

На деле там все просто - первый (приватный) принадлежит тебе и создается на твоем компе. С помощью него можно создать второй (т.е. публичный), который кому угодно отправить. Этот кто угодно добавляет его к себе в "белый список" и второе - добавляет его в папку к какому-то юзеру - чтобы связать логин с тобой - т.е. ты то можешь быть Гриха, а у него на компе ты gzhegow, и вот в папку gzhegow он кладет твой ключ, а потом еще в программку вносит что типа такому то ключу можно входить. После этого тот, у кого есть приватный может ходить туда, где его публичный в белом списке. В общем то все. Так делают связь например сервер-сервер - создали два приватных, на их базе два публичных, обменялись публичными - все работает - можно с одного сервера удаленно давать команду другому и им не нужна дибильная кнопка "разрешить подключение", которую должен нажать человек - серваки то небось один в Германии, другой в Камбодже.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы