【问题标题】:Coldfusion, using cfqueryparam to filter an email form that is sent to the webmasterColdfusion,使用 cfqueryparam 过滤发送给网站管理员的电子邮件表单
【发布时间】:2014-09-04 02:36:05
【问题描述】:

从字面上看,我如何防止 SQL 注入或 CSRF 发生在电子邮件表单中?

用户将填写一份电子邮件表单,其中包含多个字段。然后,该表单将向网站管理员发送一封电子邮件,然后管理员将其添加到数据集和数据库中。我已经检查了这一点,但是它根本没有安全性。

所以澄清一下,email表单构造了一个email,并将email发送给webmaster。

【问题讨论】:

  • 感谢您更新此内容,但仍然含糊不清。一方面,SQL 注入与发送电子邮件有什么关系?你在这里是什么意思?您正在运行什么版本的 ColdFusion(答案会根据它的不同而有所不同:总是指定这个)。听起来您要问的问题实际上与您在此处详细说明的内容无关,而是与“一封电子邮件到达,其中包含要输入数据库的一些数据,以及[您遇到的一些问题和尽管向我们展示了您的尝试以及它如何不起作用,但仍无法解决]"
  • 抱歉,还在学习中。如果您将代码放入会弄乱网页的输入字段,我认为这称为 SQL 注入。我正在运行 CF10。关注的不是网站管理员收到的内容,而是想要破坏网站的人可能对表单执行的操作。
  • 好的,所以你担心,为了争论,坏人把一些 JS 放在表单字段中,你不只是想在你的电子邮件正文中输出那个 JS当他们打开电子邮件时,可能会在收件人的机器上执行?我怀疑你想看@encodeForHtml() 及其同类:wikidocs.adobe.com/wiki/display/coldfusionen/EncodeForHTML
  • 是的,成功了!澄清一下,cfquery 和 cfqueryparam 只供数据库使用?
  • 是的。我会将我的评论推广为答案,以便您关闭问题。

标签: coldfusion sql-injection html-email csrf


【解决方案1】:

好的,所以你担心,为了争论,坏人将一些 JS 放在表单字段中,你不只是想在你的电子邮件正文中输出那个 JS,因为它可能会在收件人打开邮件时的机器?

我怀疑你想看@encodeForHtml() 及其同类。这将转义任何可能被解释为 HTML 的内容,因此它只会作为内容输出,而不是被解析。

【讨论】:

    【解决方案2】:

    JavaScript 无法在电子邮件中执行。不允许。 CSS 可以,有点。

    【讨论】:

      猜你喜欢
      • 2019-11-03
      • 1970-01-01
      • 2014-05-30
      • 2016-01-07
      • 1970-01-01
      • 1970-01-01
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多