阻止直接访问 PHP 文件并允许 json

发布于 2024-11-02 18:28:13 字数 326 浏览 4 评论 0原文

我正在尝试使用 php 脚本阻止某些文件,但是,我希望我的 javascript ajax 调用允许这些脚本,我不知道这是否可能,但是..

我现在要做的是,

$filename = array('index.php');

$basename = basename($_SERVER['REQUEST_URI']);

if(!in_array($basename, $filename)) {
    die('...');
}

这将阻止所有文件文件而不是index.php,但是如果我有一个login.php 可以让我的ajax 调用成为可能怎么办?

I'm trying to block out some files with a php script, however, i want my javascript ajax calls to allow the scripts, i don't know if this is even possible but..

What i do now is,

$filename = array('index.php');

$basename = basename($_SERVER['REQUEST_URI']);

if(!in_array($basename, $filename)) {
    die('...');
}

This will block all files and not index.php, but what if i have an login.php that makes my ajax calls possible?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凉风有信 2024-11-09 18:28:13

当您发送 JavaScript AJAX 调用时,它会添加

X-Requested-With:XmlHTTPRequest

到 HTTP 标头。因此,如果您想在 AJAX 调用的情况下执行某些操作,您可以
检查类似这样的内容:

$headers = getallheaders();
if($headers['X-Requested-With') == 'XMLHttpRequest') {
    // ...
}

请记住,任何 HTTP 客户端都可以修改标头,因此它并没有真正增加任何安全性(但例如,浏览器无法使用默认设置直接调用 PHP 脚本)。

When you send a JavaScript AJAX call it adds

X-Requested-With : XmlHTTPRequest

To the HTTP headers. So if you want to do something in case of an AJAX call you can
check for something like this:

$headers = getallheaders();
if($headers['X-Requested-With') == 'XMLHttpRequest') {
    // ...
}

Keep in mind that any HTTP client can modify headers, so it doesn't really add any security (but e.g. a browser couldn't call your PHP scripts directly with the default settings).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文