有没有办法对public_html上面的文件进行AJAX调用?

时间:2010-10-01 02:34:50

标签: javascript html ajax

我正在编写一个脚本,让我的用户打开页面,投票选择我们的网站,然后获取网站上某些受限内容的密码。但是,我计划将密码存储在public_html之外的文件中,因此无法直接从源代码中读取密码。

有没有办法对public_html上面的文件进行AJAX调用?我不想将AJAX写入将要读取文件的public_html文件中,它只是打败了目的。

5 个答案:

答案 0 :(得分:3)

不直接,不。而且,坦率地说,谢天谢地(因为js是在客户端执行的,客户端永远不会>可以访问public_html以上的Web服务器。)

但是,您可以使用Ajax调用可以访问Web根目录 的Web根目录内部的 php脚本。这样,您仍然可以将密码保留在公共范围之外,但仍然允许您的用户使用它。

缺点是密码可能会在Ajax调用中进入客户端(取决于您的Ajax调用的作用)。基本上,如果JS可以访问密码,那么任何感兴趣的用户都可以访问。

答案 1 :(得分:1)

不,你做不到。

Web服务器不允许您这样做。

此外,公开访问服务器上的非public_html文件是非常不安全的。

答案 2 :(得分:0)

不,你不能对一个不是由web服务器提供服务的文件进行AJAX调用(我假设public_html上面的文件没有apache ALIAS或虚拟目录设置)。

要完成您要执行的操作,请在您的站点上创建AJAX调用的脚本(php?),并且此脚本将:

  1. 在系统上的任何位置读取密码文件(假设文件具有正确的文件权限)
  2. 将密码嵌入脚本本身,因为无法检索脚本的源代码。

答案 3 :(得分:0)

没有。 AJAX请求就像是从服务器加载资源的任何其他请求。唯一的区别是它在已加载的页面上将结果公开给javascript而不是加载新页面。因此,如果AJAX请求可以获得此安全文件,那么任何人都可以。

您可以使用某种Web应用程序编程语言设置代理脚本,以便从磁盘中获取文件并将其发送给您。但是,将文件放在公共目录中并没有多大区别。

您可能需要在此重新考虑您的方法。

答案 4 :(得分:0)

为什么不对可以访问所需文件的服务器上的某个视图函数进行AJAX调用,然后将任何数据返回给AJAX请求?