我试图find我的共享networking服务器上的文件的正确的安全设置,我有一些基本的问题,我没有通过环顾四周。
如何阻止人们阅读我的PHP文件。 推荐的设置似乎是644,它可以让整个世界读取它们。 是对的吗? PHP的后缀是否阻止他们?
如果public_html中的PHP脚本(由客户端执行)正在访问同一服务器上但在public_html之上的html文件,我可以将其设置为600,因为脚本实际上是用户?
上面的任何东西都是从外面隐藏起来的,还是只是权限呢?
编辑客户端,我的意思是一个iPhone应用程序,它调用各种PHP脚本。 这些文件的内容并不是超级私密的,但是我想尽量减less黑客攻击的风险,所以不要让人们轻易地读取脚本和其他文件。
非常感谢,
克里斯
这真的取决于人们如何访问脚本。 你担心有人用SSH访问打开你的PHP文件? 或者你只是担心他们正在通过浏览器访问你不想让他们运行的脚本?
如果这是第一个问题,那么你需要与你的主机谈论帐户和组权限。 如果是第二个问题,那么你可以使用.htaccess文件来防止访问文件和整个目录。 如果你担心基于浏览器的访问者会看到你的代码,那么不要这样做。 Web服务器不会将代码发送给最终用户。
你为什么要把一个php脚本放在你不想让人阅读的公共站点上? 你对此有何担忧? 如果您只希望某些人能够运行脚本,则需要在权限系统中添加login系统。
另外,为什么你要使用一个方法,涉及两个文件,只要一个就足够了。 基于浏览器访问的安全性不会来自文件权限。 它将来自login和用户权限。
您的Web服务器将不会提供任何来自未设置为提供访问权限的目录。 换句话说,如果您的帐户有一个public_html文件夹和一个子域名文件夹,并且都configuration为您的网站服务的网站和数据,那么这些是唯一的位置来自。 基于Web的访问实际上非常简单。 你没有访问文件系统。 您访问Apache将提供给您的内容。 您的帐户目录可以包含其他文件夹,其中包含networking无法显示的任何内容。 只需创build目录,不要指向Apache。
如果你的意思是“客户端”,浏览器或其他可以发送HTTP请求的东西,那么通常就不用担心了。 Apache会在服务器之前尝试执行这个文件,这意味着如果你直接请求文件的话,你可能会遇到困难。 当然,如果可以的话,将应用程序的基本文件放在public_html/以外的地方并通过相对path包含它们通常是一个好主意。 如果你使用一个框架而不是一些自制的东西,这会更容易,但是如果没有一个框架支持你,它仍然是可能的。
另一方面,如果客户的意思是“你的公司正在托pipe别人的东西”,那么你正在谈论服务器的东西。 运行PHP文件的“用户”通常是Apache(HTTPD,取决于您的服务器configuration)。 虽然我相信可以让不同的脚本拥有不同的权限,但是最好在chroot jail创build一个虚拟化的实例
如果您的PHP文件必须可以通过Web服务器进程读取,那么其他任何拥有该网站的人都可以阅读它们。 这是大多数networking主机如何设置他们的盒子。
如果资产保护是最重要的,那么就专心致志。 另一种方法是让你的虚拟主机实现一些类似于suPHP的用户切换模式。 只有这样,你可以设置PHP文件为600,仍然有他们的工作。
底线,问你的主机可用的选项。
在正确configuration的Web服务器上,DocumentRoot上面的所有内容都是从外部隐藏的,并且该行为由Web服务器本身处理,而不是由文件系统权限系统处理。