Javascript 如何真正防止对文件的请求在';它不在应用程序的正常工作流中?
我使用Javascript重定向到一个名为Javascript 如何真正防止对文件的请求在';它不在应用程序的正常工作流中?,javascript,php,.htaccess,Javascript,Php,.htaccess,我使用Javascript重定向到一个名为handle.php的文件,该文件为用户创建了一个会话,然后重定向(这次使用php的header() 下面是Javascript: window.location.replace("handle.php"); 为了防止黑客直接执行handle.php,我在.htaccess中使用了以下配置: Options +FollowSymlinks RewriteEngine on RewriteCond %{HTTP_REFERER} !^http://(w
handle.php
的文件,该文件为用户创建了一个会话,然后重定向(这次使用php的header()
下面是Javascript:
window.location.replace("handle.php");
为了防止黑客直接执行handle.php
,我在.htaccess中使用了以下配置:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC]
RewriteRule ^handle.php$ - [F]
但此代码并不阻止黑客将请求重播到handle.php
并添加Referer:http://localhost
,允许他执行handle.php
因此,我需要一种方法来允许执行handle.php
仅当它位于我的应用程序的正确工作流中时,即当它来自在我的代码中编写的重定向时
谢谢您可以使用csrf令牌,为什么不直接调用主页(如果是PHP),并需要一次handler.PHP文件?您可以在主页中设置一个常量,然后检查它是否存在于handler.php中,如果它没有随着未经授权的消息而消失。@DRC根据我的问题,您将如何使用它?@Sloarcher好的,我明白您的意思,但是你为什么要使用require\u once
而不是require
?@Sloachrisher我刚刚测试了你的解决方案,但我的主页中已经包含了另一个页面,调用后者时出错,我不确定是否可以包含多个文件