在C#Winform WebBrowser中防止XSS

索达克斯

我在我的应用程序中使用C#WebBrowser。该WebBrowser接收Html输入作为字符串,例如这段相当简单的代码部分:

string HtmlToDisplay = UTF8Encoding.UTF8.GetString(Convert.FromBase64String(RawDataB64));
webBrowser1.DocumentText = HtmlToDisplay;

由于WebBrowser组件将执行HTML中包含的任何脚本,因此我需要通过“清除”显示的HTML字符串来防止XSS攻击。

我首先想到的是删除此链接中的脚本标签:https : //stackoverflow.com/a/19414886/969881

甚至甚至可以在该链接中使用HtmlAgilityPack:https : //stackoverflow.com/a/19414865/969881

但是我的同事说这还不够高效,因此我必须使用OWASP ESAPI来防止此类攻击。

1 /他是对的吗?

2 /如果是这样,是否可以使用OWASP ESAPI作为要显示在webBrowser组件中的数据的原始字符串清除器?

提前致谢,

内森格勒

删除script标签并不能完全消除网页上JavaScript的使用。此方法有一些明显的解决方法。
例如:

<input type="button" onclick="document.getElementById('test').innerHTML = '';" />

对于OWASP ESAPI,它是开源的,这意味着希望破坏您的安全系统的高级用户可以浏览API的代码,并可能找到一种解决方法。

因此,您应该考虑购买其他类型的安全系统,并对字符串进行编码以使HTML标记在写入网页时无法正常运行。

就安全性而言,我绝对不会依赖简单地用<script>空字符串替换所有实例如上面的示例解决方法所示,这绝对不是有效的方法。编码字符串是防止大多数变通办法的一种相当不错的方法,尽管高级用户可以找到方法。

因此,请回答您的问题:
(1)是的,他是对的,有比编码字符串更有效的方法
(2)我个人不建议使用开放源代码的字符串清理器,因为用户可以浏览代码并可能找到破坏安全机制的方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在C#Winform WebBrowser中防止XSS

来自分类Dev

在C#WinForm中连续弹出MessageBox

来自分类Dev

C#winform中的滚动容器

来自分类Dev

C#winform中的滚动容器

来自分类Dev

C#Winform中的子窗体工具

来自分类Dev

在c#Winform中搜索记录(实体框架)

来自分类Dev

在c#winform中设置面板边框厚度

来自分类Dev

在C#Winform中删除列表框项目

来自分类Dev

在C#Winform中在运行时更改语言

来自分类Dev

在C#Winform中通过TabIndex获取元素的文本

来自分类Dev

C#winform中的波斯语RadDateTimePicker?

来自分类Dev

如何按计划在Azure中运行C#Winform?

来自分类Dev

在C#Winform中通过操作创建后调用对象

来自分类Dev

在C#Winform中更改TabControl标头的背景

来自分类Dev

在C#Winform中通过TabIndex获取元素的文本

来自分类Dev

波斯语RadDateTimePicker在C#Winform中?

来自分类Dev

删除C#Winform中的列表框项

来自分类Dev

如何在datagridview usercontrol中添加列C#WinForm

来自分类Dev

如何按计划在Azure中运行C#Winform?

来自分类Dev

如何设置每次在C#Winform中要加载的列表?

来自分类Dev

c#WinForm DataGridView绑定列表中的列表

来自分类Dev

c#Winform DateTime仅在Datagrid中显示时间

来自分类Dev

C#WinForm:从列表框中显示的列表中编辑对象

来自分类Dev

C#winform设置值和DataTable中组合框项目的名称

来自分类Dev

在Visual Studio 2012中发布C#winform应用程序

来自分类Dev

如何检查,C#winform中的复选框是否已选中

来自分类Dev

在C#winform中从SQL存储过程返回结果和消息

来自分类Dev

无法获取存储过程以与C#Winform中的日志记录任务并行运行

来自分类Dev

C#Winform如何迭代面板父级中的所有面板子级

Related 相关文章

热门标签

归档