【发布时间】:2020-02-26 06:38:04
【问题描述】:
我们在用于 Kendo 网格数据填充的控制器中执行以下操作
public ActionResult GetCompanyDetails([DataSourceRequest] DataSourceRequest request)
{
var companyDetails = BusinessLayer.GetCompaniesDetail();
return Json(companyDetails.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
在运行 checkmarx 扫描时,上述方法被识别为反射型 XSS 漏洞。
第 1 行的方法 GetCompanyDetails wxy/xyz/Controllers/ABCController.cs 获取请求的用户输入 元素。然后,该元素的值在代码中流过,而无需 经过适当的消毒或验证,并最终显示给 第 4 行 GetCompanyDetails 方法中的用户 wxy/xyz/Controllers/ABCController.cs。这可能会启用一个 跨站脚本攻击。
如何清理DataSourceRequest request 对象以修复此 XSS 问题?
【问题讨论】:
-
您需要清理返回的值:
companyDetails.ToDataSourceResult(request)。如果你这样做,你就不会再有任何问题了。 -
@SPoint 如何清理由
companyDetails.ToDataSourceResult(request)返回的DataSourceRequest对象。它有许多字符串属性。我们是否清理了它的所有字符串属性?
标签: asp.net-mvc kendo-grid xss checkmarx