当运行Veracode时,它生成了一堆错误,指向带有InnerHtml的行。
例如,其中一行是:
objUL.InnerHtml += "<tr><td></td><td class=\"libraryEdit\">" + HttpUtility.HtmlEncode(dtitems.Rows[currentitem]["content"].ToString()) + "</td>";有什么替代方案可以在不使用html服务器控件的情况下修复它?
发布于 2014-04-25 00:48:28
你到底想做什么,Veracode到底说了什么?
最有可能的是,如果传递到InnerHtml的数据是不可信的,并且可能包含恶意的JavaScript,那么您可能会抱怨最终会出现任意代码插入漏洞。
如果您使用JavaScript createElement函数手动构建每个DOM元素,则该工具可能不会报错。
发布于 2016-12-19 18:03:04
我在我的ASP.NET Webforms应用程序中遇到过这个问题。解决这个问题的方法相对简单。
从NuGet包管理器安装HtmlSanitizationLibrary,并在您的应用程序中引用它。在代码背后,请按照以下方式使用sanitizer类。
例如,如果当前代码看起来像这样,
YourHtmlElement.InnerHtml = "Your HTML content" ;然后,将其替换为以下内容:
string unsafeHtml = "Your HTML content";
YourHtmlElement.InnerHtml = Sanitizer.GetSafeHtml(unsafeHtml);此修复程序将删除Veracode漏洞,并确保字符串呈现为HTML。在代码后台对字符串进行编码会将其呈现为“未编码的字符串”,而不是原始的HTML,因为它是在呈现开始之前编码的。
https://stackoverflow.com/questions/23274926
复制相似问题