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

我使用Javascript重定向到一个名为
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我刚刚测试了你的解决方案,但我的主页中已经包含了另一个页面,调用后者时出错,我不确定是否可以包含多个文件