因此,如果您有一个PHP页面,而如果有人加载该页面,他们可能看不到服务器端运行PHP代码;如果他们抓住了源代码,那么该文件本身仍然是公开可用的,因为如果你让它不公开,那么这个人将无法加载该页面。
因此,有人可以用正确的知识“抓住”该文件,然后阅读服务器端脚本。
因此制作'代理'并不安全。例如,AJAX调用PHP页面(称为脚本处理程序)并将前2个char作为id的字符串传递给要运行的PHP脚本,其余的字符串是该脚本的数据,然后是脚本处理程序根据数字运行并包含并返回随后显示的回显HTML。
你们觉得怎么样?我已经完成了这个并且它工作得很好,如果我抓住源码,我得到的是一个带有div容器的HTML页面和一个带有ajax调用脚本处理程序的javascript文件。
答案 0 :(得分:6)
如果客户端(浏览器)从网络服务器询问“资源”(例如某个页面),则网络服务器不会仅仅在磁盘上找到资源时提供资源。
如果您配置好网络服务器,它就会知道
因此,通过正确配置的服务器(默认情况下正确配置了大多数不错的Web服务器),只需通过调用页面来获取PHP源是不可能的 - 网络服务器将知道执行源并返回结果。
编写自己的“上传/下载脚本”时遇到的最常见错误之一是允许用户上传/下载.php(或其他可执行文件)文件。如果您自己的脚本通过从磁盘读取并将其写入网络来“提供”.php文件,则用户将能够看到您的代码。
通过:
如果您的网络服务器配置错误并且只是将.php文件作为可查看/可下载文件提供,通过ajax调用它的“解决方案”不会改变此 ... Ajax仍然是客户端所以,任何客户都可以绕过ajax并获取脚本本身。
答案 1 :(得分:4)
如果您的Web服务器配置正确,用户永远不能查看PHP文件的实际内容。如果他们尝试,他们应该看到PHP脚本的实际输出作为您的网站服务器读取并执行它,然后将其作为对HTTP请求的响应传递。
此外,您需要了解用户仍然可以轻松查看AJAX请求提取的文件;他们需要做的只是安装Firebug,或者使用Chrome开发者工具,他们将能够看到从中获取文件的完整URL。
总而言之,首先你不需要对PHP文件使用这种“安全技术”,其次,“安全技术”不会阻止任何对你的数据感兴趣的人。 / p>