我正在使用OWASP库来确保数据在插入html之前是安全的,但是emojis没有显示

时间:2017-01-02 10:59:30

标签: javascript html5 character-encoding owasp utf8mb4

我正在构建一个用户可以发表评论的应用。我想在评论文本中允许使用表情符号,因此我按照this articlehere中的步骤操作,以确保我的应用程序中的编码是utf8mb4(存储和显示表情符号时需要)

我采取的一些措施如下:

我已经使用collat​​ion utf8mb4设置了我的数据库,并在DSN中指定了一个charset utf8mb4,如下所示:

"mysql:charset=utf8mb4"

提交评论后,它会被存储到数据库中,然后我将其检索并将其插入到html中。

这很完美,表情符号正在我的应用中显示。 enter image description here

但是我也一直在采取措施确保我的应用程序中的XSS预防,因此我在使用OWASP ESAPI javascript library编码任何不安全数据之前将其插入到html中。 所以这是我的“安全”代码,用于在应用程序中显示评论文本(在它来自数据库之后)

var safe_comment_text_for_html = $ESAPI.encoder().encodeForHTML(comment_text);
var individual_comment_html = '<p class="text_of_comment">' + safe_comment_text_for_html + '</p>';
$('#comment_area').html(individual_comment_html);

不幸的是,这导致表情符号显示为问号。 enter image description here

我是否应该专门为utf8mb4使用另一种OWASP编码方法,或者你建议我做什么,正确显示表情符号,同时在插入html之前确保数据安全?感谢

0 个答案:

没有答案