来自电子邮件的HTML跨站点脚本问题
我有一个nodejs应用程序,可以使用Exchange Web服务查询Exchange服务器。我从收件箱中检索电子邮件,并将其转换为应用程序中的任务。但是,电子邮件正文包含outlook格式的HTML。我想显示的电子邮件尽可能接近原始格式,格式等,但我担心跨网站的脚本被嵌入电子邮件。处理这个问题的最佳方法是什么?在这种情况下,是否有任何javascript或节点库可以删除恶意跨站点代码?我发现这是完成此任务的最佳方法。安装到Node后,我可以使用jQuery文本功能将电子邮件正文转换为文本:来自电子邮件的HTML跨站点脚本问题,html,node.js,email,exchange-server,xss,Html,Node.js,Email,Exchange Server,Xss,我有一个nodejs应用程序,可以使用Exchange Web服务查询Exchange服务器。我从收件箱中检索电子邮件,并将其转换为应用程序中的任务。但是,电子邮件正文包含outlook格式的HTML。我想显示的电子邮件尽可能接近原始格式,格式等,但我担心跨网站的脚本被嵌入电子邮件。处理这个问题的最佳方法是什么?在这种情况下,是否有任何javascript或节点库可以删除恶意跨站点代码?我发现这是完成此任务的最佳方法。安装到Node后,我可以使用jQuery文本功能将电子邮件正文转换为文本: v
var cheerio = require('cheerio'),
$ = cheerio.load(emailBody);
var emailText = $('body').text();
然后,您可以安装以在标记样式中将纯文本解析回安全html:
var markdown = require( "markdown" ).markdown;
console.log( markdown.toHTML( emailText ) );
然后,如果您想以原始格式显示电子邮件,您可以将原始格式保存在数据库中,并为用户提供一个选项,以便他们可以显示它。当然,这再次为跨站点脚本编写提供了机会,但如果您只将此选项提供给受信任的用户,那么您可能会安全。也许你也可以让他们选择下载原始源代码并在本地机器上运行,这样就不会在你的服务器上执行了