【问题标题】:PHP Code InjectionPHP 代码注入
【发布时间】:2011-07-12 05:37:22
【问题描述】:

我的网站上运行了一个 php 脚本,它接受用户提供的输入以通过电子邮件发送。我通过剥离标签和斜杠来清理输入数据。但是,我没有使用此输入在数据库中输入数据,或者执行包含、执行、评估或类似操作。如果我没有做这些危险的事情之一,恶意用户是否有可能通过 GET、POST 或 COOKIES 数组注入可执行的 php 代码?我几乎肯定答案是否定的,但我认为值得一试询问更有经验的人。 :)

【问题讨论】:

    标签: php code-injection


    【解决方案1】:

    先生,我可以介绍您Email Injection

    如何预防:http://phpsense.com/php/php-mail.html 注意:如果您使用用户提供的 仅在电子邮件正文中的数据, 那么你应该远离它。但 我的建议是从不信任 用户输入数据。

    【讨论】:

    • 那是注入头文件,但是他们不能通过它在你的服务器上执行php代码。
    • 如果有人利用垃圾邮件表单,然后您的服务器被列入黑名单,然后来自该服务器的电子邮件将被标记为垃圾邮件......那么你就有麻烦了。漏洞无处不在。
    • 哇——你们在球上。仅 10 分钟后,我已经有 6 个答案。 :) 非常感谢您提供“电子邮件注入”的链接。我以前从未听说过;我去看看。
    【解决方案2】:

    如果您不使用 SQL 语句中的任何输入,不将其写入文件,不使用 eval 或 exec,或者包含它,不,不可能注入可执行的 php 代码。

    【讨论】:

      【解决方案3】:

      没有看到源头,没有人可以肯定地说,但可能。代码执行通常发生在您使用eval 时。还要检查您是否对用户可以修改的字符串的路径使用了 include 或 require。

      哦,还有 Header Injection 这可能会影响你http://www.securephpwiki.com/index.php/Email_Injection

      【讨论】:

      • 正是如此。如果您所做的只是直接发送输入,那么您无需担心。 1.注入只有在您将数据输入数据库时​​才会发生。所以你应该没事。电子邮件提供商处理他们认为合适的电子邮件。除非您不想发送 html 或进行其他处理(例如过滤坏词),否则无需过滤或剥离输入。 2. 仅当您尝试使用用户输入包含文件时才进行文件遍历 3. 当您向用户回显数据时的 XSS 但是请确保电子邮件是由您提供的。否则适当处理
      【解决方案4】:

      我唯一能想到的就是打开 register_globals,这将是一个高风险。

      例如,如果您有以下带有注册全局变量的 url:http://mysite/page/php?_SESSION=0 它会导致 PHP 覆盖会话全局变量:

      var_dump($_SESSION); // = 0
      

      否则它只是电子邮件注入,您必须注意,@amosrivera 提供的一个很好的链接

      【讨论】:

        【解决方案5】:

        你已经处理了很多事情。但我只想分享我在代码注入方面的经验。几个月前,我在我的网站的 index.php 文件中发现了一些奇怪的代码行。那时我只是删除了那些行,但一周左右后它们又回来了。然后,经过大量研究,我发现这是因为我的计算机中的一些恶意软件从我的 FTP 应用程序中窃取了我的 FTP ID/Pwd。它正在更改 index.php 中的代码。之后,当我在计算机中重新安装操作系统时,问题就解决了。所以这可能是代码注入的一种可能性。

        【讨论】:

          【解决方案6】:

          最好不要从产生风险的条件来考虑这个问题,而是不管上下文如何执行预防措施。

          但是,一般来说,用户提交的数据未保存到服务器上的任何位置,然后在 Web 应用程序本身中使用,在请求结束时会被垃圾收集(在您的示例中,信息是通过电子邮件发送的,然后是 GCed) .但是整体上注射是一个很大的问题,最好不要笼统的去想。当然,用户可能无法注入 PHP,但即使是简单的将 cmets 发布到 Web 应用程序的不安全文本区域也可以让您打开客户端 XSS。最好进入实践。

          作为一般规则,尽可能进行消毒。如果您在某些时候需要它,我还应该提到 HTMLPurifier 用于 XSS 过滤。由于您的表单用于发送邮件,因此您还应该在输入中放置一个验证码以防止自动发送。我还可以为您的邮件命令建议PHPMailer 吗?

          【讨论】:

            猜你喜欢
            • 2011-07-05
            • 1970-01-01
            • 1970-01-01
            • 2020-04-16
            • 2017-05-02
            • 2020-05-21
            • 2012-11-04
            • 1970-01-01
            • 2016-01-29
            相关资源
            最近更新 更多