首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复InnerHtml的Veracode错误

如何修复InnerHtml的Veracode错误
EN

Stack Overflow用户
提问于 2014-04-25 00:41:44
回答 2查看 1.3K关注 0票数 0

当运行Veracode时,它生成了一堆错误,指向带有InnerHtml的行。

例如,其中一行是:

代码语言:javascript
复制
objUL.InnerHtml += "<tr><td></td><td  class=\"libraryEdit\">" + HttpUtility.HtmlEncode(dtitems.Rows[currentitem]["content"].ToString()) + "</td>";

有什么替代方案可以在不使用html服务器控件的情况下修复它?

EN

回答 2

Stack Overflow用户

发布于 2014-04-25 00:48:28

你到底想做什么,Veracode到底说了什么?

最有可能的是,如果传递到InnerHtml的数据是不可信的,并且可能包含恶意的JavaScript,那么您可能会抱怨最终会出现任意代码插入漏洞。

如果您使用JavaScript createElement函数手动构建每个DOM元素,则该工具可能不会报错。

票数 0
EN

Stack Overflow用户

发布于 2016-12-19 18:03:04

我在我的ASP.NET Webforms应用程序中遇到过这个问题。解决这个问题的方法相对简单。

从NuGet包管理器安装HtmlSanitizationLibrary,并在您的应用程序中引用它。在代码背后,请按照以下方式使用sanitizer类。

例如,如果当前代码看起来像这样,

代码语言:javascript
复制
YourHtmlElement.InnerHtml = "Your HTML content" ;

然后,将其替换为以下内容:

代码语言:javascript
复制
string unsafeHtml = "Your HTML content"; 
YourHtmlElement.InnerHtml = Sanitizer.GetSafeHtml(unsafeHtml);

此修复程序将删除Veracode漏洞,并确保字符串呈现为HTML。在代码后台对字符串进行编码会将其呈现为“未编码的字符串”,而不是原始的HTML,因为它是在呈现开始之前编码的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23274926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档