攻击者有什么办法可以在我的服务器上查看 php 脚本中的源代码


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

我有一个运行 Debian 操作系统的服务器,我在默认的 apache 公共目录中有大量.php脚本。这绝对不是最安全的方法,但我有一个脚本,它将在mysql数据库上执行$_REQUEST["sql"]所说的任何内容。仅当您具有正确的密码(在脚本中以纯文本形式进行比较)时,才能查询此密码。

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

可能吗?当然是这样,如果您的服务器被黑客入侵,这是很有可能的。话虽如此,在PHP文件(例如Wordpress)中包含凭据实际上是很正常的,即使这不是最安全的方式。

但是,您所说的是不必要的安全风险。在身份验证方面,您应该在密码上使用单向哈希,以便在 PHP 文件遭到入侵时,攻击者仍然无法使用它们。查看 password_hash(..) 函数。

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