栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

要在mail()中使用的转义字符串

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

要在mail()中使用的转义字符串

电子邮件注入背后的想法是,攻击者在电子邮件标题中注入换行符(LF),因此他可以添加任意数量的标题。删除这些换行符可以保护您免受这种攻击。有关详细信息,请访问http://www.phpsecure.info/v2/article/MailHeadersInject.en.php

最佳实践是依靠编写良好,经常更新且使用广泛的代码。为此,我建议使用PEAR_MAIL或Zend_Mail

如果您不想加载这些模块,或者需要保持非常简单。您可以从这些模块中提取过滤功能。尽管我确实建议使用它们并经常更新库,以便将来出现新的攻击时,您只需要更新库(Pear或Zend)就可以了。

这是清除Pear Mail包中的标头的函数:

function _sanitizeHeaders(&$headers){    foreach ($headers as $key => $value) {        $headers[$key] = preg_replace('=((<CR>|<LF>|0x0A/%0A|0x0D/%0D|\n|\r)S).*=i',   null, $value);    }}

Zend_Mail对电子邮件,名称和其他字段使用不同的过滤器:

function _filterEmail($email){    $rule = array("r" => '',       "n" => '',       "t" => '',       '"'  => '',       ','  => '',       '<'  => '',       '>'  => '',    );    return strtr($email, $rule);}function _filterName($name){    $rule = array("r" => '',       "n" => '',       "t" => '',       '"'  => "'",       '<'  => '[',       '>'  => ']',    );    return trim(strtr($name, $rule));}function _filterOther($data){    $rule = array("r" => '',       "n" => '',       "t" => '',    );    return strtr($data, $rule);}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/387203.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号