【问题标题】:Is server-side PHP code visible or accessible at client-side? [closed]服务器端 PHP 代码在客户端是否可见或可访问? [关闭]
【发布时间】:2020-10-03 19:02:45
【问题描述】:
  1. 存储在服务器中的 PHP 脚本(包括 PHP 脚本中的公共方法)是否可以从客户端浏览器(包括但不限于浏览器中的控制台模式)可见、可访问或可修改?如果是,黑客是否能够注入任何代码或修改 PHP 脚本?
  2. 黑客是否可以将参数传递给 PHP 类方法(无论是公共/私有/受保护/未指定可见性)并查看该方法中存在哪些代码,或者查看某个方法中存在哪些其他代码PHP 脚本?
  3. 是否最好将 PHP 文件存储在其他位置而不是 /www 或 /htdocs 目录中?

如果以上任何一种情况属实,可以采取哪些补救措施?

【问题讨论】:

标签: php security web web-applications webserver


【解决方案1】:
  1. PHP 是一种服务器端语言,这意味着它运行的任何东西都将在您的服务器上运行和呈现,唯一发送回客户端的是您给它的响应。这意味着没有 PHP 代码在 Web 浏览器中可见,也无法通过控制台访问。

  2. 任何人都能够将参数传递给 PHP 方法的唯一情况是,如果您将代码设计为通过方法运行 URL 查询参数或表单数据。即使这样,除非您有目的地返回您的代码,否则他们将无法看到实际代码,您可以立即注意到这一点。作为预防措施,过滤和转义任何用户输入始终是一个好主意,以避免 SQL 注入和其他类型的恶意输入。

  3. 我确定这取决于个人意见,但您可以在合理的范围内将 PHP 文件存储在任何地方。您应该将可公开访问的 php 文件存储在您的 htdocs 或 www 文件夹中,因为人们需要访问这些文件,但您始终可以选择在 htdocs 目录之外使用 require_oncerequireinclude 等,方法是在您的 htdocs 目录之外添加 @ 987654324@:示例require_once("../my_file.php");(此文件不可公开访问,但会在您运行请求它的可公开访问的 php 页面时包含在内,这适用于您想要包含函数文件等时)

编辑:正如 GetSet 所提到的,是的,您的服务器配置错误等可能会让某人将代码视为纯文本。此外,为您的 FTP 和 SSH 保留默认用户名/密码也将成为您服务器的后门,供他人查看您的代码。只需确保您的服务器配置正确并遵循严格的安全标准即可。

【讨论】:

  • 不正确配置的服务器可以导致 php 脚本被下载而不是被渲染。
  • “您应该将可公开访问的 php 文件存储在您的 htdocs 或 www 文件夹中,因为人们需要访问这些文件”。这不是普遍正确的。例如,使用 nginx 和 php-fpm,没有理由将任何 PHP 文件保留在任何根目录中。这不是一个最佳实践,这不是意见问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-11
  • 1970-01-01
相关资源
最近更新 更多