我不知道这是否可能
但我的javascript中有一个ajax
函数,我们知道我们需要在ajax请求中提供php file path
,这对所有用户都是可见的,不幸的是他们可以看到ajax文件的路径以及它们存储的位置。但我不希望这种情况发生我不希望用户或客户端看到我的ajax字段是否有办法从客户端隐藏此路径,从查看ajax文件的路径?我知道它的混淆,但我只想要完成这条路是否可能?
更新
有没有办法阻止用户从网址查看或打开php文件,我的意思是如果用户输入ajax文件的路径并点击输入,他可以看到我的所有文件,他可以很容易地破解我的数据所以有没有办法阻止用户输入它们,我只想让我的页面访问不是来自用户网址的php文件,谢谢
答案 0 :(得分:7)
这是不可能的。浏览器必须请求URI。用户可以看到他们的浏览器请求的资源。
“Ajax文件”不是特例。您需要以与通过HTTP提供的任何其他资源完全相同的方式保护它们。即使用身份验证和授权来确保只允许访问它们的用户执行,输入验证以确保发送给它们的任何数据都是可接受的,并且转义以确保数据不会导致问题将其插入到SQL / HTML / JS /任何其他数据格式中。
对更新的回应:
有没有办法阻止用户查看或打开网址中的php文件
仍然没有!
我的意思是如果用户输入ajax文件的路径并点击输入,他可以在那里看到我的所有文件
您可以将服务器配置为不提供DirectoryIndex。具体取决于服务器。或者,您可以在其中放置一个空白的index.html文件。
他很容易破解我的数据
如何?
有没有办法阻止用户输入
没有
我只希望我的页面访问不是来自用户的php文件
只有HTTP客户端才能请求URI。无法区分响应来自JavaScript的指令的HTTP客户端,该指令是从响应用户输入的指令编写的。
答案 1 :(得分:1)
一种可能的方法是对其进行模糊处理,使其不是用户可读的。 EXPL;通过使用主脚本并通过在发送时打开一些POST / GET参数来包含文件(可以是随机字符串,哈希,数字)。 当您通过mod_rewrite将所有流量重定向到一个脚本时,可以实现更高效的混淆。在网址的某处,您隐藏了一个数字,告诉您要使用哪个文件。然后在它之前和之后添加随机字符串(具有特定长度)并从主脚本中读取它。但是用户会通过查看javascript找到答案。
但是很生气。你为什么在乎?没有安全隐患!/更新到您更新的问题; 我想你想看看你的apache配置;全部使用.htaccess files或更好,disable indexing of a directory。用户将无法知道您的所有PHP文件。只有那些,您通过您的应用程序中的链接公开。没有“只允许ajax访问文件而不是用户”这样的事情。因为ajax是用户和副verca!您是代表用户发送ajax请求的!如果用户在浏览器栏中输入url,则与发送ajax请求相同。 You could add a special header with your ajax call(或使用已经提供的那个),但只要用户查看所需的流量,就不会改变任何内容。 我认为你想要的是User Session只允许特权用户完全执行脚本。
答案 2 :(得分:0)
没有。
这是不可能的。客户端执行请求,客户端由用户控制。