如何在直接导航到 AJAX 站点上的资源页面时验证登录

How to verify logins on direct navigation to resource pages on an AJAX site

我有一个 SPA,它使用 AJAX 调用来自多个 PHP 文件的 assemble 内容。我可以将以下内容添加到主应用程序的配置文件中,以便能够将未登录的用户重定向回登录页面,只要他们尝试通过门户查看内容即可。

// Verify Login to access this resource
if($_SESSION["loggedIn"] != true) {
  echo ('resource denied  <script>window.location.href = "https://'.$_SERVER['SERVER_NAME'].'/login.php";</script> ');
  exit();
}

问题在于,如果您只是尝试扫描站点以查找常见文件架构,仍然可以直接访问大量视图、模型、控制器和第三方小部件。

有没有办法使用 htaccess 或 php.ini 文件之类的东西自动将此登录检查附加到目录中的所有 php 文件,这样我就不必粘贴了这进入每一页?

除此之外,有没有办法将我的 chmod 设置设置为只允许间接访问这些文件,这样服务器上的 php 脚本 运行 可以使用它们,但不能直接访问?谢谢

[编辑] 将文件移出我的 public 文件夹不起作用,因为它破坏了 AJAX.

我也在 htaccess 文件中尝试了 auto_prepend_file,但这导致了 500 错误。我使用的 VPS 显然不允许我在我的 Apache pre_virtualhost_global.conf 中执行 AllowOverride All;否则,我认为这样做才是正确的方法。

将我的资源文件夹的 CHMOD 设置设置为 0750 似乎允许 AJAX 命令在不允许直接访问文件的情况下执行。如果有人知道在执行此操作时需要注意的任何其他安全警告,请告诉我。谢谢。