Tre*_*her 12 php security email postfix-mta sendmail
我感觉有点尴尬,因为我使用PHP生成邮件正文而不会转义变量.在HTML中我使用htmlspecialchars()或类似函数,命令行escapeshellarg(),但对于邮件?例如这样的事情:
<?php
$usercontent = $_GET['usercontent'];
mail("dummy@nowhere.tld", "My Subject", "My body with $usercontent included");
?>
Run Code Online (Sandbox Code Playgroud)
一个可能的攻击者可能会对上面的脚本做什么,我怎么能防止这样的攻击呢?或者是PHP mail()保存,为什么?
更新
请参考示例:
基本的电子邮件正文是纯文本。如果您想要其他类型(例如HTML或多部分消息),则需要使用MIME扩展名,并使用Content-Type(例如,text/html对于HTML或多multipart/…部分消息)相应地指定类型。
因此,从安全角度来看,没有办法注入任何有害的东西(至少不是按照规范)。即使缺少使用的字符编码的声明,即使非ASCII字符也应正确处理。
但是,电子邮件客户端中仍然可能存在一些漏洞,可以通过这种方式加以利用。但我对此表示怀疑。
它不能防止 XSS 攻击,因为如果您的邮件包含 HTML,有人可以将其注入邮件中。
良好的行为是检查您期望拥有的有效数据。如果我是你,我就会逃避这个字符串。它几乎不需要花费任何费用,而且您不必担心不使用它的后果。
| 归档时间: |
|
| 查看次数: |
1345 次 |
| 最近记录: |