繁体   English   中英

允许window.location但阻止直接访问PHP文件

[英]Allow window.location but prevent direct access to a PHP file

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

我试过使用Debug Backtracepreg_match(),但它们也阻塞了main.php的window.location。 有什么办法解决这个问题?

我不太确定您想做什么以及为什么要做。 没有办法只允许脚本打开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.)将自定义参数添加到重定向中,这仅在给定时间内有效。 简单来说,类似于php time() 检查参数是否在短时间内。 但是在这种情况下,必须在main.php文件启动重定向时生成重定向URL。 否则,该请求可能已经过时。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM