【问题标题】:Calling php file from javascript using jQuery.get(), location of php?使用 jQuery.get() 从 javascript 调用 php 文件,php 的位置?
【发布时间】:2015-07-11 04:22:00
【问题描述】:

在将此作为重复关闭之前,请注意我阅读了许多关于 SO 的类似问题,但没有一个回答我的疑问。

我正在尝试使用 jQuery.get() 调用我的 .php 文件

$.ajax({
 url: url,
data: data,
success: success,
dataType: dataType
});

我正在使用 wordpress,我尝试调用 php 文件的 javascript 代码包含在页面标题中。

我将 php 文件放在服务器根目录下的 my-includes 文件夹中,因此我可以使用 url:/my-includes/xxx.php 访问它。 (感谢OSDM for his answer

但现在可以使用 domain-name/my-includes/xxx.php 公开访问

我的问题是-

  1. 这就是网站的运作方式。这不是安全风险吗?

  2. 我可以让公众无法访问此文件,但让它在我的网站上正常工作吗?

【问题讨论】:

    标签: javascript php


    【解决方案1】:

    如果您将网址设为:url: '/folderintheroot/file.php',无论网址是什么,它都会从您网站的根目录开始。这里的关键是:'/'开头。

    关于安全问题。如果人们可以访问您的网站,这意味着他们可以看到从服务器发送到他们计算机的所有内容。因此,当使用 jquery.get() 调用该脚本时,它是完全相同的。 基本上任何公开的都是公开的。否则,您必须开始使用登录名和密码,但这是另一回事。

    您可以做一件事,请参阅此处:Using .htaccess, prevent users from accessing resource directories, and yet allow the sourcecode access resources

    【讨论】:

    • 我创建了一个文件夹并将 php 文件放在那里。该文件是否需要像这样公开访问 - domainname.com//xxx.php ?
    • 如果是同域名访问,就不用放域名了,只要:/
    • 根据您的评论,我假设此路径“//xxx.php”是否可公开访问(通过任何人或不通过任何人)都没有关系。 1个不相关的问题,这是否也适用于javascript文件?假设我想使用 调用一个 javascript 文件。我需要给出的路径是否与您建议的路线相同?
    • 实际上,我在根目录下创建了一个文件夹,但现在我放入此文件夹中的所有内容 .js、.html 都可以通过 domain.com//.js 访问任何想法如何制作它公众无法进入?
    • 还发现这个 -an ajax 请求是一个普通的 http 请求,所以这意味着 php 文件应该可以公开访问?这让我回到了我原来的问题。这不是安全风险吗?
    【解决方案2】:

    是的,这通常是网站的运作方式。您想提供给客户的任何内容都必须可供他们访问 - 否则它将如何进入他们的计算机?

    是否存在安全风险?仅当您不希望人们看到该数据时,但如果是这种情况,那么您不应该提供它。对于只应发送给选定个人而不是使其普遍可访问的数据,您应该使用某种形式的身份验证 - 仅在用户已通过身份验证时才提供数据。

    进行身份验证的方法有无数种,请查看PHP best practices for user authentication and password security 了解一些想法。

    【讨论】:

    • 我想我有办法限制对 php 文件的访问,但仍然使用 .htaac​​ess 文件从我的网站调用它们。我认为人们看到实际代码没有任何意义,这没有任何意义。
    • 也许我误解了你想要做什么。 PHP 文件的源代码不应被访问,PHP 文件应由您的网络服务器解释并提供生成的 HTML。不过,您不需要使用 .htaccess 文件来控制它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-18
    • 1970-01-01
    • 2015-01-19
    • 2023-03-10
    • 1970-01-01
    • 2015-12-17
    • 2017-04-20
    相关资源
    最近更新 更多