我刚刚在 2 分钟内收到了 20 份提交的内容,表格托管在我的网站上。填写的唯一字段显示alert('TK00000025')
,每次提交都会将此数字增加到 alert('TK00000036')
.该字段在表单之间切换,因此一个表单在名称部分中具有此内容,而下一个表单将其放在电子邮件部分中。在此之后,有四个空白条目。
这是什么,为什么会发生?我应该做些什么来防止它吗?
一般来说:
1)切勿插入不受信任的数据,除非在允许的位置
2) 在将不受信任的数据插入 HTML 元素内容之前进行 HTML 转义
3) 在将不受信任的数据插入 HTML 公共属性之前进行属性转义
4) 在将不受信任的数据插入 JavaScript 数据值之前进行 JavaScript 转义
5) HTML 转义 HTML 上下文中的 JSON 值并使用 JSON.parse 读取数据
- JSON 实体编码
- HTML 实体编码
6) CSS 转义并在将不受信任的数据插入 HTML 样式属性值之前进行严格验证
7) 在将不受信任的数据插入 HTML URL 参数值之前进行 URL 转义
8) 使用专为作业设计的库清理 HTML 标记
9) 防止基于 DOM 的 XSS
如果你休耕,我相信你几乎是安全的。
参考:预防备忘单