【问题标题】:Attempted JS injection in form on website? - alert('TK00000025')尝试在网站上以表单形式进行 JS 注入? - 警报('TK00000025')
【发布时间】:2016-04-24 20:01:49
【问题描述】:

我刚刚在 2 分钟内收到了 20 份提交到我网站上的表单。唯一填写的字段是alert('TK00000025'),每次提交都会将此数字增加到alert('TK00000036')。该字段在表单之间切换,因此一个表单在名称部分具有此字段,而下一个表单在电子邮件部分具有此字段。在此之后,有四个空白条目。

这是什么?为什么会这样?我应该做些什么来防止它?

【问题讨论】:

  • 这是针对您网站的自动跨站点脚本攻击。我会检查以确保它没有成功,但如果您的网站正确清理输出,您无需担心。
  • 也许像 recaptcha 这样的东西可以提供帮助。
  • 谢谢两位,这对了解很有帮助。
  • 我现在明白这是一次黑客攻击,但有人能解释一下它试图做什么吗?我想更详细地了解 TK00000025 的作用。
  • 我的第一个猜测是这是一个用户不太可能输入的随机字符串。如果提交表单后加载的“成功”事件/页面/任何内容导致“tkxxx”出现在 JavaScript 警报中,则攻击者知道他们可以在您的网站上运行他们喜欢的任何 JavaScript,当您在查看提交(并登录到网站)。因此,xss。

标签: javascript php forms


【解决方案1】:

一般:

1) 除非在允许的位置,否则切勿插入不受信任的数据

2) 将不可信数据插入 HTML 元素内容之前的 HTML 转义

3) 将不可信数据插入 HTML 通用属性之前的属性转义

4) 将不可信数据插入 JavaScript 数据值之前的 JavaScript 转义

5) HTML 在 HTML 上下文中转义 JSON 值并使用 JSON.parse 读取数据

  • JSON 实体编码
  • HTML 实体编码

6) 在将不受信任的数据插入 HTML 样式属性值之前进行 CSS 转义和严格验证

7) 将不可信数据插入 HTML URL 参数值之前的 URL 转义

8) 使用专为作业设计的库清理 HTML 标记

9) 防止基于 DOM 的 XSS

如果你进行休耕,我相信你是非常安全的。

参考:Prevention Cheat Sheet

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    • 2018-08-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    相关资源
    最近更新 更多