Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自电子邮件的HTML跨站点脚本问题_Html_Node.js_Email_Exchange Server_Xss - Fatal编程技术网

来自电子邮件的HTML跨站点脚本问题

来自电子邮件的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

我有一个nodejs应用程序,可以使用Exchange Web服务查询Exchange服务器。我从收件箱中检索电子邮件,并将其转换为应用程序中的任务。但是,电子邮件正文包含outlook格式的HTML。我想显示的电子邮件尽可能接近原始格式,格式等,但我担心跨网站的脚本被嵌入电子邮件。处理这个问题的最佳方法是什么?在这种情况下,是否有任何javascript或节点库可以删除恶意跨站点代码?

我发现这是完成此任务的最佳方法。安装到Node后,我可以使用jQuery文本功能将电子邮件正文转换为文本:

var cheerio = require('cheerio'),
$ = cheerio.load(emailBody);

var emailText = $('body').text();
然后,您可以安装以在标记样式中将纯文本解析回安全html:

var markdown = require( "markdown" ).markdown;
console.log( markdown.toHTML( emailText ) );
然后,如果您想以原始格式显示电子邮件,您可以将原始格式保存在数据库中,并为用户提供一个选项,以便他们可以显示它。当然,这再次为跨站点脚本编写提供了机会,但如果您只将此选项提供给受信任的用户,那么您可能会安全。也许你也可以让他们选择下载原始源代码并在本地机器上运行,这样就不会在你的服务器上执行了