允许窗口.Location,但请阻止直接访问PHP文件



我有一个脚本文件,名为 script.php ,它可以从另一个名为 main.php 的php文件访问。> window.location "命令。我想防止直接访问文件,即,没有人可以在URL栏中键入script.php并查看文件的内容。但是我希望我的main.php能够使用window.location重定向到script.php。有什么方法?

我尝试使用 debug backtrace preg_match(),但它们也阻止了从main.php的窗口。有什么方法可以解决这个问题?

我不确定您想做什么以及为什么要做。没有办法只允许脚本打开URL,因为浏览器会处理它。

通常,如果允许用户使用它们,则应检查文件本身。因此,您必须为您找到逻辑,如何告诉您脚本,如果用户应该看到它。否则,您可以执行其他操作,例如显示错误或将他重定向回到您main.php

只是一些快速的想法...

想法1。),如果可能,您可以在main.php中的include() script.php,并通过.htaccess阻止直接访问。然后,您不需要重定向,没有人可以直接访问它。

创意2。)main.php中设置会话变量,例如$_SESSION["allow"] = true;,然后在script.php中再次检查。之后,将值设置为false,因此下一个呼叫将是失败。

想法3。)在文件调用中添加一个参数,例如script.php?allow=true。但是在这种情况下,所有知道参数的用户都可以称呼它。

创意4。)在重定向中添加自定义参数,wich仅在给定时间有效。很简单,类似于PHP time()。检查参数是否在短时间内。但是在这种情况下,当main.php文件启动重定向时,必须生成重定向URL。否则请求可能已经旧了。

这就是我的想法。希望有什么提示如何做。

最新更新