攻击者是否可以通过任何方式查看我服务器上 php 脚本中的源代码?

Is there any way an attacker could view source code in php scripts on my server?

我有一个服务器 运行 Debian os,我有大量的 .php 脚本位于默认的 apache public 目录中。 这绝对不是执行此操作的 most 安全方法,但我有一个脚本可以执行 $_REQUEST["sql"] 对 mysql 数据库所说的任何内容。 只有密码正确才能查询这个,在脚本中是明文比对的。

我的问题是攻击者能否以某种方式查看此脚本并找到密码,然后随意执行 sql 语句?

可能吗?当然可以,如果您的服务器被黑了,那是很有可能的。也就是说,在 PHP 文件(例如 Wordpress)中包含凭据实际上是很正常的,即使这不是最安全的方式。

但是,您所说的是不必要的安全风险。在身份验证方面,您应该对密码使用单向散列,这样如果 PHP 文件被泄露,攻击者仍然无法使用它们。查看 the password_hash(..) function.

此外,您永远不应该执行用户直接发送的 SQL 语句。如果您要执行管理任务,请使用 Adminer 或 PhpMyAdmin。 SQL 语句应在服务器端生成 using prepared statements 以转义用户输入信息。