Ember.js 余烬数据模型属性清理/转义以防止XSS?

Ember.js 余烬数据模型属性清理/转义以防止XSS?,ember.js,escaping,ember-data,xss,sanitization,Ember.js,Escaping,Ember Data,Xss,Sanitization,如何对字符串属性执行清理以防止XSS?现在我的想法是重写我的基本模型的save方法,迭代模型中的所有字符串,并将所有字符串输入设置为安全字符串。这是解决这个问题的好方法还是有更好的方法 编辑: 为应用程序中的人员保存名称属性(警报('xss'))时出现问题。它以非净化的方式将其保存到数据库中。然后,该名称被加载到我们的另一个站点中,该站点不清理输出,这就是脚本注入发生的地方!我想在将其保存到DB之前对其进行清理,Handlebar会自动清理字符串。如果要避免这种情况,必须显式使用三大括号语法:

如何对字符串属性执行清理以防止XSS?现在我的想法是重写我的基本模型的save方法,迭代模型中的所有字符串,并将所有字符串输入设置为安全字符串。这是解决这个问题的好方法还是有更好的方法

编辑:


为应用程序中的人员保存名称属性(警报('xss'))时出现问题。它以非净化的方式将其保存到数据库中。然后,该名称被加载到我们的另一个站点中,该站点不清理输出,这就是脚本注入发生的地方!我想在将其保存到DB之前对其进行清理,Handlebar会自动清理字符串。如果要避免这种情况,必须显式使用三大括号语法:

{{{myHtmlString}}}

与其尝试清理输入,您实际上应该更改另一个站点,以确保它从数据库中转义它正在呈现的数据。即使你想“清理”余烬端的东西,你能保证没有其他漏洞允许有人在数据库中注入HTML吗


总是逃避呈现的任何内容实际上是处理XSS的唯一安全方法。如果您正在筛选输入,则很可能无法捕获注入意外输入的所有可能方式。

问题不在于ember应用程序中的脚本注入。让我编辑一下我的问题,这样你们就能明白我的意思了。老实说,这听起来更像是服务器端的问题。通过防止数据库中的坏数据,不管它是如何到达那里的,您将修复一次问题。如果您将来有不同的UI,您不想在那里也进行消毒。^我同意。这是最有意义的。因为恶意的人可能会发布恶意请求,从而绕过清理。我同意你的看法。尽管我认为,如果有人忘记转义文本,转义输入也很重要,即使您正在过滤输入,您也可能会得到您意想不到的字符、您意想不到的字符集(精心设计以绕过过滤器并在不同的字符集中产生不同的结果)。你必须有一个白名单,上面有你想通过的任何东西,这很可能会导致限制太多。转义输出更容易、更安全。你能给我一个我不期望的字符示例吗?如果我使用把手逃生方法,我不应该安全吗?安全,是的。但是经过时,您将逃逸
/[&”``]/g
,有些人的名字或街道地址中确实有这些字符。然后,在某个时候,你会在输出中对它们进行双重编码,你可能会得到例如
O&&8217;Neil
。我开始理解你的观点。不过,你是如何得到“O&&8217;Neil”的?我假设是双重编码的……是什么前面