Предпосылки:
PHP: 5, Laravel: 5.1, MySQL: innodb 5.6.34.
Проблема:
Мы создали веб-API с «конечной точкой» «test». Теперь нужно добавить еще одну конечную точку («здоровье») — эта конечная точка служит индикатором работоспособности для API: когда мы вызываем test.api.com/health?, соответствующий контроллер должен установить прямое соединение с БД и отправить в ответ пользователю два статуса: статус API и статус БД (данные есть, БД активна, все в порядке).
Вопрос:
Насколько безопасно сделать такой контроллер без промежуточного программного обеспечения для аутентификации? Или другими словами: насколько безопасно вызывать конечную точку, которая подключается к БД без ключа API?
Заметка, эта структура может измениться в будущем — возможно, на Python’s Flask, а также на DB — на PostgreSQL. Поэтому, даже если у вас нет опыта в Laravel или MySQL, тем не менее, не стесняйтесь высказать свое мнение.
Постскриптум Если вы имеете в виду, что security.stackexchange.com лучше для этого вопроса, дайте мне знать и, пожалуйста, не понижайте — я задам этот вопрос там тогда. Я просто хотел использовать количество пользователей здесь, в SO.
У вас не должно быть проблем с этим. Вы не принимаете пользовательский ввод, поэтому вы не склонны к каким-либо уязвимостям sql, если вы так думаете. Вы можете кэшировать ответ на несколько секунд, чтобы не забивать сервер базы данных. Опционально может быть ограничителем скорости API.
Других решений пока нет …