Javascript jQuery html属性与html?
我使用jQuery来确保我的用户不能通过我的聊天应用程序执行javascript。这就是我如何将从WebSocket服务器获取的数据附加到用户的方式:Javascript jQuery html属性与html?,javascript,jquery,attributes,sanitization,Javascript,Jquery,Attributes,Sanitization,我使用jQuery来确保我的用户不能通过我的聊天应用程序执行javascript。这就是我如何将从WebSocket服务器获取的数据附加到用户的方式: obj = JSON.parse(e.data); $("<li>", { class: "list-group-item", text: obj.username + ": " + obj.message }).prependTo('#chatlog'); obj=JSON.par
obj = JSON.parse(e.data);
$("<li>", {
class: "list-group-item",
text: obj.username + ": " + obj.message
}).prependTo('#chatlog');
obj=JSON.parse(e.data);
$(“”{
类:“列表组项目”,
文本:obj.username+“:”+obj.message
}).prependTo(“#chatlog”);
这非常有效,似乎可以躲过所有XSS攻击,但这是我的问题。我想把
obj.username
改成粗体,但我不知道该怎么做,因为text:
之后的所有内容都变成了文本。非常高兴在这方面得到任何帮助 使用span wrapped元素设置HTML内容,您可以使用临时元素转换文本
const escape = txt => $('<div/>').text(txt).html()
$("<li>", {
class: "list-group-item",
html: '<span style="font-weight:bold">' + escape(obj.username) + "</span>: " + escape(obj.message)
}).prependTo('#chatlog');
const escape=txt=>$('').text(txt.html()
$(“”{
类:“列表组项目”,
html:“”+转义(obj.username)+“:”+转义(obj.message)
}).prependTo(“#chatlog”);
const obj={
用户名:“John Doe”,
信息:“嗨!djsjdk”
};
const escape=txt=>$('').text(txt.html();
控制台日志(转义(对象消息));
$(“”{
类:“列表组项目”,
html:“”+转义(obj.username)+“:”+转义(obj.message)
}).prependTo(“#chatlog”)代码>
然后您可以使用另一种方式:-
$("<li>", {
class: "list-group-item",
}).append($('<span>', {
class: 'font-weight-bold',
text: obj.username
})).append($('<span>', {
text: `: ${obj.message}`
})).prependTo('#chatlog');
$(“”{
类:“列表组项目”,
}).附加($(''){
类:“字体粗体”,
文本:obj.username
})).附加($(''){
文本:`:${obj.message}`
})).prependTo(“#chatlog”);
请参见下面的代码段:-
const obj={
用户名:“John Doe”,
留言:“嗨!”
};
$(“”{
类:“列表组项目”,
}).附加($(''){
类:“字体粗体”,
文本:obj.username
})).附加($(''){
文本:`:${obj.message}`
})).prependTo(“#chatlog”)代码>
粗体部分起作用,但这使得通过obj.message编写脚本成为可能!您可以在li中创建两个span,并使用textWorks分别在两个span中传递值,但如果obj.message包含javascript,则允许使用XSS。我需要做的是使obj.message文本,但我想obj.username必须是HTML才能加粗