Ответ 1
Любой запрос, который вызовы AJAX на ваших страницах могут сделать, также может быть сделан кем-то вне приложения. Если все сделано правильно, вы не сможете сказать, были ли они сделаны как часть вызова AJAX из вашего webapp или вручную/другими способами.
Есть два сценария, о которых я могу подумать, когда вы говорите, что хотите убедиться, что только ваши вызовы AJAX могут отправлять данные: либо вы не хотите, чтобы злонамеренный пользователь мог отправлять данные, которые мешает другим пользовательским данным, или вы действительно хотите ограничить количество сообщений в "потоке" операции с несколькими запросами.
Если вы заинтересованы в первом случае (кто-то отправляет вредоносные данные в/в качестве другого пользователя), то решение будет одинаковым, независимо от того, используете ли вы AJAX или нет - вам просто нужно аутентифицировать пользователя с помощью любых необходимых средств - обычно через сеансовый файл cookie.
Если вы заинтересованы во втором случае, вам придется сделать что-то вроде выпуска уникального токена на каждом этапе процесса и сохранить ожидаемый токен на стороне сервера. Затем, когда запрос сделан, проверьте, есть ли соответствующая запись на стороне сервера для действия, которое выполняется, и что ожидаемые токены совпадают и что этот токен еще не используется. Если нет, вы отклоняете запрос, если есть, то вы помечаете этот токен как использованный и обрабатываете запрос.
Если вы беспокоитесь о чем-то, отличном от одного из этих двух сценариев, тогда ответ будет зависеть от более конкретных особенностей, чем вы предоставили.