避免HTML和Scripts标记呈现

时间:2013-03-26 20:27:24

标签: javascript jquery node.js socket.io

我一直在聊天框中工作,我使用Node.js + socket.io进行客户端 - 服务器通信,因此我无法执行PHP代码(我已经阅读过这是可能的但不建议这样做很难实现)。除非用户使用HTML或Scripts标签发送消息,否则一切正常。

我尝试使用here中找到的功能删除这些标记。它工作正常,但仅适用于HTML标记,然后我想:我可以先使用正则表达式删除脚本标记。像这样的东西

.replace(/<script.*>.*<\/script>/ims, " ")

然后删除HTML标记,但我不确定此方法是否为黑客证明,并且每个发送的邮件都有很多流程。

是否有任何形式的附加文字$("#div").append(message);而没有呈现HTML / JavaScript代码? ---打印文本就像在twitch.tv中那样,在那里,如果你发送带有HTML / JS / PHP代码的消息,那么消息就像打字一样打印。

或者,有没有其他方法可以删除标签?

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

只需添加一个div,并将消息设置为文本。

$("#div").append( $("<div>").text(message) );