具有样式属性的字符串的角度html模板呈现为没有样式属性的字符串

时间:2020-02-15 21:33:53

标签: javascript html css angular typescript

我有一个Util.ts,它定义了格式函数,如下所示。问题出在具有样式属性的小标签上。

export const formatMessage = (message ) =>{
    return '<b>' + message.name+" </b><small style ='color:black;'>" +message.ts + '</small>  ' + message.c;
  }

但是,当呈现的小标签的样式属性被删除时,

enter image description here

我不确定为什么会这样,由formatMessage函数返回的HTML字符串模板是使用DIV的innerHTML附加到HTML的,如此处所示。

<ul style="list-style-type: none;">
  <li  *ngFor="let each of messages"><div class='messageStyle' [innerHTML]="each"> </div></li>
</ul>

为什么要删除此样式属性(而保留类属性),如何解决此问题?

1 个答案:

答案 0 :(得分:2)

dom消毒剂会从您的html中指定样式。这样做是为了防止xss攻击。您可以通过以下方法绕过安全检查:

class RootLessException(Exception):
    pass
...
...
    def preorder(self):
        if not self.root:
            raise RootLessException
        val = self.root
        ...

并将消毒剂传递给formatMessage

相关问题