代码之家  ›  专栏  ›  技术社区  ›  jrharshath

PHP邮件头注入保护

  •  0
  • jrharshath  · 技术社区  · 16 年前

    在用于邮件功能的php手册页面上,有一个用户评论说“注意防止头插入”。

    在我的应用程序中,我使用mail函数,并且作为函数参数的唯一用户输入是email地址。

    我使用regex对电子邮件地址进行了初步检查 ^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$ .

    这也能防止集管喷射吗?

    谢谢,
    JRH

    2 回复  |  直到 16 年前
        1
  •  3
  •   JCasso    16 年前

    有人想注射这样的东西:

    用户地址@domain.com
    抄送:spam@address1@domain.com、spam@address2@domain.com、spam@address3@domain.com

    你不允许 \rn 定义新的头信息时需要。所以你的申请是安全的。

        2
  •  0
  •   djn    16 年前

    只有将用户提供的内容放入消息头中时,头注入才是一种风险。一个典型的例子是使用已发布的电子邮件地址设置回复标题。

    这是我使用的:

    $email = preg_replace(array("/\r/i","/\n/i", "/%0a/i", "/%0d/i", "/Content-Type:/i", "/bcc:/i", "/to:/i", "/cc:/i", "/Content\-Transfer\-Encoding\:/i", "/Mime\-Version\:/i" ), "", $email); 
    
    推荐文章