在显示更新数据之前使用javascript清理用户输入

时间:2014-02-09 08:18:27

标签: ruby-on-rails security xss

在其中一个页面(用户的个人资料)上,用户可以编辑他们的信息。然后使用AJAX保存更新的信息(名称,标语等)。这些是我遵循的步骤:

a)用户输入数据并点击保存。

b)我使用ajax

将(未验证的)数据发送到服务器

c)在服务器端清除数据以获取XSS,并使用Active Record保存以避免SQL注入。

d)在客户端,如果AJAX请求成功,则用户的新数据(客户端未经验证的数据)将替换旧数据。

现在说它是恶意用户并且他们插入一些JS代码,JS代码将在更新后工作一次,因为客户端没有检查数据。但是,如果用户刷新屏幕,则清理验证的数据将取代它,JS将无法运行。这种方法是否存在潜在的安全漏洞?

1 个答案:

答案 0 :(得分:0)

如果数据不包含HTML,请使用$ .text(或.innerText)和$ .attr(或.setAttribute)来更新视图。或者,您调用ajax可以返回安全的HTML代码段。