Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从客户端隐藏本地服务器上的php文件';s机器_Php - Fatal编程技术网

从客户端隐藏本地服务器上的php文件';s机器

从客户端隐藏本地服务器上的php文件';s机器,php,Php,我已经完成了一个web应用程序的构建,它使用了PHP、Mysql、HTML和CSS的组合。我在Ubuntu 12.0上安装的apache上(在var/www/根文件夹中)托管了这个。这意味着web应用程序将在客户端计算机上本地托管 这也意味着客户机可以访问位于var/www/文件夹中的php文件,现在的问题是,他可以在需要时直接复制、删除或编辑php文件,但事实并非如此 我不希望客户端能够直接从文件夹访问文件,尽管他应该能够使用浏览器在本地访问文件 我在想,是否有一种方法可以对所有人隐藏文件,或

我已经完成了一个web应用程序的构建,它使用了
PHP
Mysql
HTML
CSS
的组合。我在Ubuntu 12.0上安装的
apache
上(在
var/www/
根文件夹中)托管了这个。这意味着web应用程序将在客户端计算机上本地托管

这也意味着客户机可以访问位于
var/www/
文件夹中的php文件,现在的问题是,他可以在需要时直接复制、删除或编辑php文件,但事实并非如此

我不希望客户端能够直接从文件夹访问文件,尽管他应该能够使用浏览器在本地访问文件

我在想,是否有一种方法可以对所有人隐藏文件,或者更好的方法是使用文件夹锁,当通过浏览器访问时,只能使用密码和非密码访问


经过大量研究,我似乎无法找到更好的解决方案,如果有人对此有想法,我将不胜感激。非常感谢您的帮助

这个问题的答案有多个方面:

  • 为了保护文件不被修改/移动,您可能应该管理文件权限(并避免向客户端提供根密码)
  • 如果您担心的是代码(即,您不希望客户机看到/修改代码或代码),则应查找代码混淆工具(请参见此处: )
  • 在某个阶段,你必须信任你的客户。。如果无法实现这一点,那么您必须在某个阶段获得一个新客户:)

  • 有几种选择:

  • 使用标准权限(使用chmod)。将www数据设置为目录的所有者。不允许任何其他人访问该目录
  • 使用标准权限(使用chmod)。将自己设置为目录的所有者。将组设置为www数据。不允许任何其他人访问该目录
  • 安装acl包以提供更精细的权限,从而允许您为各种用户和组指定权限级别。(使用setfacl)。如果我有多个组需要对一个目录拥有不同的权限,我倾向于选择此选项

  • 如果客户对自己的本地环境至少没有sudo权限,那就真的很奇怪了

    如果客户端具有root访问权限或位于sudoers文件中,则无法更改文件的所有权或文件权限

    如果客户机在sudoers文件中,他可以简单地执行
    sudo passwd root
    来更改根密码,或者他可以执行
    sudo chown-R客户机:www-data/var/www/website
    来获得对文件的访问权,而不考虑权限(他当然也可以轻松地更改权限)


    正如巴特所说,如果你想加密你的文件,Ioncube可能是一个可行的解决方案。

    你无能为力。这是客户的电脑。他们拥有它。他们完全可以控制它,你对权限或隐藏所做的任何修改都可以被他们轻易地撤销。根据Marc B的解释,如果你需要保持文件的私密性,你唯一的选择就是把它们放在你的客户不拥有的机器上。有一些非常便宜的VPS选项,您可以将其用作独立的web服务器。然后,您可以允许您的客户仅对您希望他/她看到的部分进行受限访问。您可以尝试加密您的php脚本,例如下面的答案建议权限,但是这些都不太可能有帮助,因为用户可以运行php shell来浏览文件系统并读取文件。本质上,如果PHP可以读取文件进行处理,PHP脚本也可以获取内容。编码是一种通常的做法,如果需要的话,可以将文件限制在特定的机器上。您还应该投资签订一份具有法律约束力的协议,规定客户可以做什么。大揭露:我与ionCube有关。生活中有四个终极真理。死亡。税。客户总是错的。你不能告诉你的客户他们错了。