【发布时间】:2013-09-10 05:29:41
【问题描述】:
我有一个带有加号图标的输入字段。单击加号图标时,输入的值将添加到输入字段上方。
实际上,我正在使用模板在输入字段上方添加内容。单击加号图标时,我将相应的模式替换为值,并使用 jQuery 替换功能将内容放在输入字段上方。
如果任何黑客输入像"<script>alert("hi");</script>" 这样的值,布局就会中断。
如何通过 jQuery 阻止这些类型的攻击?我知道可以进行服务器端验证。但是有什么方法可以通过 jQuery/客户端验证来阻止这些攻击?
【问题讨论】:
-
我知道您希望在客户端执行此操作,但只是重申一个有争议的问题,客户端验证是纯粹的漂亮用户体验。服务器端验证(和输出转义)是安全的,是 XSS 唯一需要关注的验证。任何脚本小子都可以并且将使用 firebug/dev 工具等发送 HTTP 协议允许的任何值。
-
这里是客户端 jQuery answer
-
谢谢,我知道服务器端验证是最终的安全性,我已经做到了,但只是想知道客户端的方式......我会试试这个,让你们知道。再次感谢您的快速回复...
-
appendCntDiv = appendCntDiv.replace(r1, counter).replace('{:elemVal}', SkillName).replace('{:hidVal}', skHdId).replace('{:expVal} ', exp);在这里,我将 {:elemVal} 替换为具有脚本标签的技能名称,因此如何在执行替换功能之前过滤脚本标签。
标签: javascript jquery escaping