Всем привет. На стороне браузера происходит запрос к php-серверу через fetch. На принимающей стороне проверяется, от кого запрос: PHP: $addr = $_SERVER['HTTP_X_FORWARDED_PROTO'] . '://' . $_SERVER['HTTP_HOST']; if (strpos($_SERVER['HTTP_REFERER'], $addr) !== 0) { exit('F..k off!'); } Реально подменить адрес отправителя запроса? Или я не там боюсь?) --- Добавлено --- Вот кусок кода запроса: Код (Javascript): let formData = new FormData(); appendFormdata(formData, data); fetch( '/core/ajax.php?a=' + data.action + '&rand=' + Math.random(), { credentials: 'same-origin', method: 'POST', cache: 'no-cache', body: formData } ) .then( response => response.text() ) .then( data => { try { let ret = $.parseJSON(data); if (typeof ondone === 'function') { ondone(ret); } } catch(error) { console.log(error, data); } } );
Аджаксом дёрнуть чужой домен браузеры не дадут, уже давно. Если вы явно не возвращаете заголовки, которые всем разрешают дёргать. Так что за AJAX можно не беспокоиться. А так, подменить этот заголовок не составляет труда, как и показал @MouseZver. Или из какого-нибудь парсера его туда подставить. Для целей безопасности он не должен быть использован.