我们在Kendo网格数据填充的控制器中有以下操作
public ActionResult GetCompanyDetails([DataSourceRequest] DataSourceRequest request)
{
var companyDetails = BusinessLayer.GetCompaniesDetail();
return Json(companyDetails.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
在运行检查marx扫描时,已识别出上述方法是否存在反射型 XSS 漏洞。
wxy/XYZ/Controllers/ABC controller . cs第1行的方法GetCompanyDetails获取请求元素的用户输入。然后,此元素的值在没有经过适当清理或验证的情况下流经代码,并最终在wxy/XYZ/Controllers/ABC controller . cs的第4行的方法GetCompanyDetails中显示给用户。这可能会导致跨站点脚本攻击。
如何清理DataSourceRequest
对象以修复此XSS问题?
Kendo.Mvc。UI网格组件通过在呈现期间对内容进行编码来尽最大努力防止XSS问题。默认情况下,网格对单元格中显示的内容进行编码,这意味着如果用户提交了脚本,脚本将不会执行,但将显示为标准文本。请记住,可以通过设置列来禁用此编码。编码配置为false
columns.Bound(bank => bank.Website).Filterable(false).Encoded(false);
由于以下内容类型,建议的反射XSS漏洞完全不能被现代浏览器利用:
return Json(model.ToDataSourceResult(request), "application/json", System.Text.Encoding.UTF8, JsonRequestBehavior.AllowGet);
我推荐阅读:OWASP备忘单验证。
是的,您需要验证您拥有的所有数据、格式和类型。在应用清理之前,您可能需要解析String的每个元素并将每个元素转换为一个String。另一个解决方案可能只是对companyDetails.ToDataSourceResult(request)
的结果进行编码。这场比赛只有XSS。
但最好的解决方案是
这次再次战斗注射和XSS
A Table 对象可以被指示从数据库中已经存在的相应数据库架构对象加载关于其自身的信息。此过程称为 反射 。在最简单的情况下,您只需指定表名,即 MetaData 对象,而 autoload_with 参数:: >>> messages = Table('messages', meta, autoload_with=engine) >>> [c.name for c in messages.co
我想使用带有mysql的npm包knex将myback-end文件夹与localhost上的mysql数据库连接起来。 步骤: 在后端项目文件夹(包含knex和mysql)中运行nodemon server.js文件 在《邮差》中,我喜欢: 打开“邮递员”,选择“Post Requst”,复制URL:localhost:3000/myPath“,复制到正文: {“电子邮件”:“me@gmail.c
当前的请求对象由think\Request类负责,在很多场合下并不需要实例化调用,通常使用依赖注入即可。在其它场合(例如模板输出等)则可以使用think\facade\Request静态类操作。 [TOC=2,3] 请求对象调用 在控制器中通常情况下有两种方式进行依赖注入。 构造方法注入 <?php namespace app\index\controller; use think\Reque
用简单的话来说,我想发送这个数据到服务器,使用Volley Post Request。 它有一个整数和一个字符串,我得到的响应是Jsonarray 我尝试过以下方法,但都不管用 > 因为它是json数组请求,我不能在参数中发送数据,因为第三个参数只需要JsonArray,我必须发送JsonObject,所以保持为null 我不能把它放在中,因为值的1是整数,并且它只接受字符串 getparams(
我想根据数据在我的应用程序中的所有网格中设置列对齐属性。 如果列是十进制/数字类型,是否有一种方法可以将列对齐到中心,否则为所有其他类型向左对齐。 我没有列架构,我需要在呈现数据之前确定它。
来自客户端网页的数据作为全局请求对象发送到服务器。要处理请求数据,请求对旬应该从Flask模块导入。 请求对象的重要属性如下所列 - - 它是包含表单参数及其值的键和值对的字典对象。 - 解析问号()后的URL部分查询字符串的内容。 - 保存Cookie名称和值的字典对象。 - 与上传文件有关的数据。 - 当前请求方法。