У меня есть URL, который будет принимать POST-данные и хранить их записи - это для аналитики. Мне нужно обезопасить это от любого человека в мире, начиная от POSTing до него, но какой возможный механизм аутентификации я могу использовать, чтобы безопасно раскрывать детали? Я не думаю, что javascript может получить доступ к любым секретным данным, не делая их публичными.
Я могу основать его на любом HTTP-заголовке, но все они могут быть подделаны, верно?
Если это помогает, клиент и сервер используют https.
Редактировать: я думаю, что мне нужно изложить проблему более явно; извините, я думал, что смогу объяснить это кратко, но это явно не встречается! Представьте себе следующее:
Статическая страница на https://example.com/index.html
содержит скрипт, https://example.com/script.js
.
Сценарий отправляет запрос на другой удаленный URL, например,
ajax_call('https://stats.example.com/stats.php', 'some data');
- Сценарий
stats.php
просто записывает 'some data'
в файл
Теперь недостаток в том, что любой может просто ПОСТАВИТЬ что-нибудь в stats.php
, и он запишет в файл. Я хочу ограничить это только своим «клиентом», то есть https://example.com/index.html
.
Если бы я мог, я бы сделал что-то подобное в stats.php
:
if ($_SERVER["HTTP_REFERER"] == 'https://example.com') {
do_stuff();
} else {
die('not allowed');
}
но у меня всегда было впечатление, что HTTP_REFERER (и другие подобные заголовки) могут быть просто подделаны, так что это будет бессмысленно.