Мне надо проверить что запрос несет в себе json и определенный header, что бы ни кто просто так не мог запросы кидать
исторически это делают через авторизацию
Добавить basic auth либо на стороне веб сервера либо прямо в php дело нескольких
строчек. Для отправки запроса практически любой библиотекой можно пользоваться следующим форматом url -
http://user:password@site.com/path (даже php file_get_contents поддерживает)
Ну и самое простое - по токену
токен это буквально пароль, который либо прописан в конфигах/исходниках твоего сервиса либо выдается сервисом авторизации на время. Этот токен можно указывать либо в заголовках (тогда для отправки запроса нужно этот заголовок установить или еще проще - разместить этот токен прямо в запросе, т.е.
site.com/doit?auth=secret_password
Если протокол общения с твоим сервером будет https никто не сможет узнать ни логин пароль, ни токен авторизации, не имея доступа к машине с которой они вызываются