Checkmarx对代码进行了分析,并报告了以下问题:
第**行的方法Load_Bank从数据库中获取Where
元素的数据。然后,该元素的值在未经正确过滤或编码的情况下流经代码,并最终在SomeController.cs
的第*行的方法中显示给用户。这可能会启用存储的跨站点脚本攻击。
internal IEnumerable<BankDTO> Load_Bank()
{
using (var Container = new EBookletEntities())
{
var query = from r in Container.Gen_Bank.AsNoTracking()
where r.IsDeleted != true
select new Gen_BankDTO
{
Id = r.Id,
Name = r.Name
};
return query.ToList<BankDTO>();
}
}
以下是控制器代码
using (var bll = new BankBLL())
{
var item = bll.Load_Bank();
var model = item.Select(r => new BVM()
{
Id = r.Id,
Name = HttpUtility.HtmlEncode(r.Name)
}).ToList();
return Json(model.ToDataSourceResult(request), "application/json", System.Text.Encoding.UTF8, JsonRequestBehavior.AllowGet);
}
Checkmarx源:
where r.IsDeleted != true
目的地:
return Json(model.ToDataSourceResult(request), "application/json", System.Text.Encoding.UTF8, JsonRequestBehavior.AllowGet);
我想知道是否真的存在存储的XSS问题或检查玛克斯报告它是错误的?
如何解决Checkmarx问题?
这是不可利用的,因为响应类型是应用程序/json
。即使存在带有脚本标记的有效 xss 攻击,也没有现代浏览器会在具有应用程序/json
内容类型的响应中执行该攻击。
另外,Id
我猜是一个数字或uuid,Name
是html编码的,你可以说这是为了深度防御,但它实际上只需要编码为json,这是固有的。
您可以在检查中的标记将其标记为不可利用。
还要注意,在GET请求中返回json数组仍然不被认为是好的做法,因为有一种叫做json劫持的老攻击。然而,这在现代浏览器中已经不能被利用了,所以我不会说它容易受到攻击,除了在IE9中,不幸的是IE9可能仍然在使用。
我正在处理的代码库已被Checkmarx分析,它返回了一个包含“存储的XSS”问题的报告。该问题指出: 方法GetHomepageFilterByLocaleHomepageRepo.cs从数据库中获取Select元素的数据。然后,此元素的值在没有经过适当过滤或编码的情况下流过代码,并最终在方法GetProductsByFilterType中显示给用户HomepageController.cs.这
Checkmarx在我的Controller类中为以下方法提供了XSS漏洞。具体来说:此元素的值(ResultsVO)随后在代码中流动,而没有经过适当的清理或验证,最终在方法中显示给用户: ResultsVO对象有很多String属性,我只是想知道是否有一种优雅的方法来编码它们以防止此漏洞。
Checkmarx扫描仪扫描“反射XSS所有客户端”。如何在JavaRESTAPI中解决这个问题? 本地运行了REST API服务的扫描。
This document outlines security procedures and general policies for the Libra project. Note: As Libra Core is currently in the prototype stage and does not power a blockchain with a currency that has
我的Android应用项目使用检查玛克斯扫描源代码以查找安全问题。检查马克思报告了谷歌排球图书馆的问题。以下是错误说明: 方法performRequest位于\ app \ libraries \ valley \ src \ main \ Java \ com \ Android \ valley \ toolbox \ hurl stack . Java的第89行,用于获取getHeaders
我有3种类型的文件(XML、PDF、zip)存储在我的服务器文件中,并根据请求以base64格式发送给用户(客户端)(当客户端单击一个按钮时)。< br >文件被下载到用户的计算机上,并且不显示(在HTML页面上)。 我使用Checkmarx服务进行了安全测试,收到了安全问题: “MyFile.js第58行的方法函数从数据库中为readFileSync元素获取数据。然后,该元素的值在未经正确筛选或