尝试在网站上以表单形式进行 JS 注入? - 警报('TK00000025')

Posted

技术标签:

【中文标题】尝试在网站上以表单形式进行 JS 注入? - 警报(\'TK00000025\')【英文标题】: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。 【参考方案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

【讨论】:

以上是关于尝试在网站上以表单形式进行 JS 注入? - 警报('TK00000025')的主要内容,如果未能解决你的问题,请参考以下文章

当表单中没有任何更改时显示警报框

sql注入介绍

如何在 laravel 上以一种形式使用两个控制器方法?

如何在我的登陆页面上以文本形式显示我的网站访问者的位置? [关闭]

PHP:测试SQL注入以及防止SQL注入

sql注入漏洞都有哪些