Подтвердить что ты не робот

Api обеспечение безопасности php

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

Я создаю раздел на моем сайте: api.domain.com

Это может быть доступ через завиток или веб-браузер, поскольку я возвращаю объект json или xml (в зависимости от пользовательских префов)

Мой вопрос заключается в следующем: должен ли я ограничивать доступ с помощью пользователя /pass или мне нужно создать хэш файла пользователя?

например:

сценарий 1:

Пользователь создает php curl, который отправляет пользователя и проходит через пост или завиток auth и возвращает результаты, анализирует их и т.д.

Для меня это безопасно, но пользователь должен поддерживать свой script, если они меняют свой проход

сценарий 2

Пользователь получает доступ к файлу, например: api.domain.com/j355HGssgf3HESAjh45jusf4325GSj5hbsHhdh5HGHFS3732he4548475wbe3447nSNe5XfgjhGJ, а затем получает доступ к данным

Этот, ничего, чтобы поддерживать

4b9b3361

Ответ 1

Вот мои мысли об этом.

Если вы вернете страницу, не найденную или сообщение об ошибке (с хорошим статусом 200 OK), когда запрос сделан на вашу страницу, он может отправить ботам или доверенным людям ООН подсказку о том, что они могут получить и попробовать снова и снова и снова...

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

Я скажу, что в этом случае метод user/password немного более безопасен.

Теперь, доверяете ли вы просто вводить большую строку (например, сценарий 2) при проверке своей почты? или информацию о вашем банковском счете?

Ответ 2

Если бы это был я, я бы дал каждой учетной записи возможность создания уникального ключа api,

api.domain.com/?key=<API.KEY>

для большей меры безопасности вы можете заставить его принимать соединение только через метод post с ключом api. Если с вами связался через get, тогда вы увидите ошибку и т.д.

Затем, если они изменят свой пароль/имя пользователя, это не повлияет на их ключ api