Безопасный запрос ajax GET / POST для сервера

предположим, что я работаю с каким-то API, и мой файл server.php обрабатывает соединение с сервисом API. на моей стороне клиента я использую вызов AJAX следующим образом:

$http({ url : 'server/server.php', method : 'GET', data : { getContent : true } }); 

в моем server.php я обрабатываю это следующим образом:

 if(isset($_GET['getContent'])){ $content = get_content(); } function get_content(){...} 

Я просто задаюсь вопросом, что мешает кому-либо отправить вызов AJAX с тем же параметром getContent и получить все мои данные? как я могу его защитить и убедиться, что только вызовы из моего приложения вернут соответствующие данные?

Спасибо!

Наверное, вас беспокоят атаки CSRF. Подробнее об этом читайте здесь: https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29_Prevention_Cheat_Sheet

Одним из наиболее часто используемых вариантов защиты вашего запроса будет: – создать токен и отправить его с запросом на сеанс. Этот токен может быть идентифицирован вашим WebServer как исходящий от конкретного клиента для определенного сеанса

Я просто задаюсь вопросом, что мешает кому-либо отправить вызов AJAX с тем же параметром getContent и получить все мои данные?

Ничего. Этот URL-адрес является общедоступным, поэтому любой может запросить его.

как я могу его защитить и убедиться, что только вызовы из моего приложения вернут соответствующие данные?

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

 $http({ url : 'server/server.php', method : 'GET', data : { getContent : true, hash : '0800fc577294c34e0b28ad2839435945' } }); 

а также

 if(isset($_GET['getContent'])) { if(isset($_GET['hash']) && validateHash($_GET['hash'])) { $content = get_content(); } } function get_content(){...} 

Я просто задаюсь вопросом, что мешает кому-либо отправить вызов AJAX с тем же параметром getContent и получить все мои данные?

Точно так же вы будете защищать данные в любом другом запросе (например, с помощью аутентификации пользователя). В Ajax нет ничего особенного в отношении HTTP в отношении сервера.

как я могу его защитить и убедиться, что только вызовы из моего приложения вернут соответствующие данные?

Вы не можете. Пользователь всегда может проверить, что их браузер запрашивает у сервера и реплицирует его.

Как правило, люди аутентифицируют пользователей, а не приложения.