在其中一个页面(用户的个人资料)上,用户可以编辑他们的信息。然后使用AJAX保存更新的信息(名称,标语等)。这些是我遵循的步骤:
a)用户输入数据并点击保存。
b)我使用ajax
将(未验证的)数据发送到服务器c)在服务器端清除数据以获取XSS,并使用Active Record保存以避免SQL注入。
d)在客户端,如果AJAX请求成功,则用户的新数据(客户端未经验证的数据)将替换旧数据。
现在说它是恶意用户并且他们插入一些JS代码,JS代码将在更新后工作一次,因为客户端没有检查数据。但是,如果用户刷新屏幕,则清理验证的数据将取代它,JS将无法运行。这种方法是否存在潜在的安全漏洞?
答案 0 :(得分:0)
如果数据不包含HTML,请使用$ .text(或.innerText)和$ .attr(或.setAttribute)来更新视图。或者,您调用ajax可以返回安全的HTML代码段。