Нет абсолютно надежного способа предотвратить это, так как любая информация заголовка может быть подделана.Токены на основе сеансов - еще одно возможное решение, но в этом случае ваш javascript общедоступен, поэтому любой, кто хочет потратить немного времени, может определить, как работает ваша система токенов, и найти способ ее обойти.
AСочетание методов обеспечит вам самую широкую защиту.Вы можете найти заголовок, использовать и файл .htaccess, а также использовать токены.Подобный подход «все вышеперечисленное» значительно усложняет злоупотребление веб-сервером - большинство злоупотреблений происходит от людей, пытающихся найти легкую дыру в использовании.Важно помнить, что вы не можете успокоиться, потому что развернули «лучшую» защиту или потому, что у вас так много уровней защиты, что кажется невозможным взломать.Если кто-то действительно хотел этого достаточно сильно и имел время, он найдет способ.Эти виды профилактических мер на самом деле являются только сдерживающими факторами, позволяющими держаться подальше от ленивых, любопытных и ленивых злодеев.Целевые атаки - это отдельный класс безопасности, и обычно они больше связаны с проблемами безопасности на уровне сервера.
Пример htaccess.Это было бы не то, что вы бы поместили в свой корень, а скорее в подпапку, где у вас есть сценарии, которые никогда не должны вызываться из адресной строки:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?_YOUR_DOMAIN_NAME_HERE.com [NC]
RewriteRule \.(php)$ - [NC,F,L]
Ознакомьтесь с этой статьей для получения информации об использованииСистема токенов: https://www.owasp.org/index.php/Cross-Site_Request_Forgery_%28CSRF%29_Prevention_Cheat_Sheet