Wpf 禁用WebBrowser控件中的活动内容

Wpf 禁用WebBrowser控件中的活动内容,wpf,Wpf,我在应用程序中嵌入了WebBrowser控件,并显示从服务器接收的内容。具体来说:控件绑定到一个字符串,该字符串包含来自rest调用的错误消息,有时是HTML 我想知道如果将活动内容(例如JavaScript)作为错误消息的一部分发送,是否存在安全风险。是否有方法指示WebBrowser控件禁用所有活动内容?有几种方法: 第一种方法是从字符串中删除javascript,然后将其传递到浏览器,从: 快速“n”脏方法将是如下所示的正则表达式: var regex = new Regex( "(

我在应用程序中嵌入了WebBrowser控件,并显示从服务器接收的内容。具体来说:控件绑定到一个字符串,该字符串包含来自rest调用的错误消息,有时是HTML


我想知道如果将活动内容(例如JavaScript)作为错误消息的一部分发送,是否存在安全风险。是否有方法指示WebBrowser控件禁用所有活动内容?

有几种方法:

第一种方法是从字符串中删除javascript,然后将其传递到浏览器,从:

快速“n”脏方法将是如下所示的正则表达式:

var regex = new Regex(
   "(\\<script(.+?)\\</script\\>)|(\\<style(.+?)\\</style\\>)", 
   RegexOptions.Singleline | RegexOptions.IgnoreCase
);

string ouput = regex.Replace(input, "");
*)有关为什么更好的讨论,请参阅

这样看起来更好更容易

第二种方法是使用WinForms webbrowser控件,它允许您控制较低级别的浏览器,但这涉及到一些对WinAPI的调用


您可以查看更多信息。

您能解释得更清楚些吗?若你们想从服务器上禁用javascript代码/html,你们可以很容易地做到。如果您信任服务器,那么处理服务器发送给您的内容就更容易了。恰恰相反。我不信任服务器。我想在WebBrowser视图中显示内容,但已停用所有活动内容。这是否意味着您想完全禁用WebBrowser javascript?是的,我想禁用任何活动内容。整个目的是显示碰巧被格式化为HTML的信息。谢谢Sakura。我可能需要遵循这种方法。然而,我的想法是指示WebBrowser控件禁用活动内容,就像我可以告诉它我的浏览器一样。是的,如果我们能做到这一点,那将是最好的。但是说这是不可能的。@johanneschacht谢谢:)
HtmlDocument doc = new HtmlDocument();    doc.LoadHtml(htmlInput);
var nodes = doc.DocumentNode.SelectNodes("//script|//style");
foreach (var node in nodes)       node.ParentNode.RemoveChild(node);
string htmlOutput = doc.DocumentNode.OuterHtml;