我从检查玛克斯那里得到了以下安全漏洞。
酒精跟踪器网络应用程序/酒精跟踪器网络应用程序/控制器/家庭控制器.cs
从数据库中获取 ToList
元素的数据。然后,此元素的值在未经正确过滤或编码的情况经代码,并最终在方法 SubmitEventReque 请求
中显示在酒精跟踪器网络应用/酒精跟踪器WebApp/控制器/家庭控制器.cs
的第 20 行中。这可能会使存储的跨站点脚本攻击成为可能。
public ActionResult SubmitEventRequest()
{
AlcoholTrackerContext db = new AlcoholTrackerContext();
string winlogin = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
var intname = winlogin.Substring(winlogin.LastIndexOf('\\') + 1);
ViewBag.IDSID = intname;
var name = db.WorkerInfoes.FirstOrDefault(a => a.IDSID.Equals(intname));
ViewBag.name = name.FirstName + " " + name.LastName;
ViewBag.WWID = name.OrgUnitDescr;
ViewBag.ConsumptionMethod = db.AlcoholConsumptions;
ViewBag.ConsumptionMethod = new SelectList(db.AlcoholConsumptions, "AlcoholConsumptionId", "ConsumptionMethod");
return View(new Event());
}
如果我在下面使用
ViewBag.ConsumptionMethod =
new SelectList(HttpUtility.HtmlEncode(db.AlcoholConsumptions), "AlcoholConsumptionId", "ConsumptionMethod");
但是通过上述修复,我在Razor视图中为下拉列表收到错误:
@Html.DropDownListFor(model => model.AlcoholConsumptionId,
ViewBag.ConsumptionMethod as IEnumerable<SelectListItem>,
"---Please Select---",
new {
id = "AlcoholConsumptionMethod",
@class = "form-control-new",
style = "margin-left:-788px;margin-top:20px;width:20.5%"
}
)
视图中出错:数据绑定:“系统。“Char”不包含名为“AlcoholConsumptionId”的属性。
< code>db。AlcoholConsumptions的类型为< code>IEnumerable,对< code>IEnumerable进行HTML编码不会产生您期望的结果,也不会返回SelectList接受的< code>IEnumerable
不过,使用Razor视图会自动编码数据(除非您使用Html.Raw
),因此您可以删除HttpUtility.HtmlEncode
,但Checkmarx会看到您没有显式调用,因此您可以取回XSS。
在将< code > alcohol consumption id 添加到< code>db之前,HTML对其进行编码。酒精消耗量。
问题内容: 我正在尝试使用一个数据库中存在但另一个数据库中没有的information_schema.routines查询存储过程定义的列表。 这给了我一行查询的定义,所以当我有这样的评论时 SQL被注释掉了,我不能使用该定义来创建SP。 如何使用适当的换行符将其解析回去? 还是 有更好的方法(使用代码)来获取这些脚本? 问题答案: 存储过程仅在Management Studio中显示在一行上。如
Summary Stored Cross-site Scripting (XSS) is the most dangerous type of Cross Site Scripting. Web applications that allow users to store data are potentially exposed to this type of attack. This chapt
问题内容: 是否可以在CSS样式表中使用跨站点脚本?例如,参考样式表包含恶意代码,您将如何处理?我知道您可以使用样式标签,但是样式表呢? 问题答案: 来自浏览器安全手册 JavaScript执行的风险。作为一个鲜为人知的功能,某些CSS实现允许将JavaScript代码嵌入样式表中。至少有三种方法可以实现此目标:使用expression(…)指令,该指令可以评估任意JavaScript语句并将其值
我希望有一个函数,它从一个单元格中获取一个值,并在另一个工作表中的过滤器中使用它来仅过滤该值。我该怎么做? 提前谢谢你。
只要应用程序获取不受信任的数据并将其发送到客户端(浏览器)而未经验证,就会发生跨站点脚本(XSS)。这允许攻击者在受害者的浏览器中执行恶意脚本,这可能导致用户会话劫持,破坏网站或将用户重定向到恶意站点。 下面我们借助一个简单图表了解这个漏洞的威胁代理,攻击向量,安全弱点,技术影响和业务影响。 威胁代理 - 内部/外部用户或管理员发送给系统的不受信任的数据。 攻击者的方法 - 发送不受信任的数据/基
我想知道是否有一个工具,它将我的代码库和一个jar文件作为输入,它将在代码库中搜索这个jar文件正在使用的任何地方,并给我输出。不应使用Eclispe IDE。(变得微不足道)。我已经搜索了一些静态代码分析工具,如PMD、Checkstyle、findbugs。但他们都没有我需要的选择。你能给我推荐一个能完成上述任务的工具吗?