【问题标题】:What protection is needed for PHP mail scripts? [duplicate]PHP 邮件脚本需要什么保护? [复制]
【发布时间】:2015-04-12 21:43:26
【问题描述】:

我知道这类问题通常是不允许的,但我在任何地方都找不到答案。

即使您不使用数据库/MySQL,是否也需要 SQL 注入保护?

如果我有一个基本的 PHP 邮件表单,可以将内容发送到我的电子邮件,我是否需要保护该表单?

【问题讨论】:

  • 不使用SQL是否需要防止SQL注入?
  • 如果某类问题“通常不允许”,那么为什么要问,知道它会被关闭?如果不涉及 SQL 数据库,您如何期望 SQL 注入攻击是可能的?
  • 我猜一般是代码注入?我不一定确定可以将什么注入到我的电子邮件的基本表单中。
  • 如果您存储任何用户输入并将其重新呈现在屏幕上(例如在文件中),您仍然需要注意 XSS。对于邮件表单,您需要防止标头注入。
  • 听起来很简单。它只是一个基本的联系表格,要求提供姓名、电话号码和电子邮件,以及一些小细节。没什么大不了的。那时应该不会太难保护。 :)

标签: php security email code-injection


【解决方案1】:

如果您不使用数据库,那么不,您不需要防范利用数据库查询的攻击。电子邮件有自己的一整套漏洞,我建议使用诸如phpmailerswiftmailer 之类的库,这将有助于解决此问题。无论哪种方式,您都应该始终验证从表单提交的数据是否符合您期望的格式。

【讨论】:

  • 好的,谢谢。我会检查这些。我只是不确定哪种类型的攻击可以真正起到什么作用。
  • 例如,有人可以将电子邮件标题信息放入消息文本框中,这样他们就可以从您的服务器向任何他们想要的人发送电子邮件。如果你不防范它,它会让一些垃圾邮件发送者非常高兴。
  • 所以基本上只需验证电子邮件将仅发送给我希望它发送的那些。使用 if 语句比较值听起来很容易。
  • 不幸的是,事情没那么简单。阅读这篇文章,底部有一些基本示例resources.infosecinstitute.com/email-injection 还有更多内容,但它应该让您很好地了解如何处理不可靠的数据
【解决方案2】:

您需要对邮件表单进行 XSS 保护。您不希望用户能够将 javascript 等注入电子邮件。防止 XSS 的一种简单方法是使用 htmlentities() 在用户输入中禁止 HTML 标签,例如 <script>..</script>。 htmlentities 将<script> 之类的标签转换为<script>

【讨论】:

  • 是所有的html标签还是我指定的?
  • htmlentities 转换所有 html 字符。
猜你喜欢
  • 1970-01-01
  • 2019-11-15
  • 2014-08-19
  • 2018-09-26
  • 1970-01-01
  • 1970-01-01
  • 2012-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多