我正在构建一个用户可以发表评论的应用。我想在评论文本中允许使用表情符号,因此我按照this article和here中的步骤操作,以确保我的应用程序中的编码是utf8mb4(存储和显示表情符号时需要)
我采取的一些措施如下:
我已经使用collation utf8mb4设置了我的数据库,并在DSN中指定了一个charset utf8mb4,如下所示:
"mysql:charset=utf8mb4"
提交评论后,它会被存储到数据库中,然后我将其检索并将其插入到html中。
但是我也一直在采取措施确保我的应用程序中的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);
我是否应该专门为utf8mb4使用另一种OWASP编码方法,或者你建议我做什么,正确显示表情符号,同时在插入html之前确保数据安全?感谢