Asp.net 动态创建DOM元素-检查数据是否有害

Asp.net 动态创建DOM元素-检查数据是否有害,asp.net,asp.net-mvc,json,scripting,cross-site,Asp.net,Asp.net Mvc,Json,Scripting,Cross Site,我已经发布了一个和这个问题密切相关的问题。我和P.Haacked和S.Hanselman一起看了Mix10视频 我正在构建一个支持AJAX的站点,其输入表单是动态创建的 实现这一点的所有代码都是在脚本标记或javascript文件中完成的。例如,当页面加载并包装到视图中定义的现有div中时,将创建以下DOM元素: $('#myform')。追加('); $('#myform')。追加('') 单击“提交”按钮时,我需要获取id为“Name”的输入表单的值: $(“#Name”).val()然后返

我已经发布了一个和这个问题密切相关的问题。我和P.Haacked和S.Hanselman一起看了Mix10视频

我正在构建一个支持AJAX的站点,其输入表单是动态创建的

实现这一点的所有代码都是在脚本标记或javascript文件中完成的。例如,当页面加载并包装到视图中定义的现有div中时,将创建以下DOM元素:

$('#myform')。追加('); $('#myform')。追加('')

单击“提交”按钮时,我需要获取id为“Name”的输入表单的值: $(“#Name”).val()然后返回一个Json对象:{Name:Name}

对于这种情况,无法在客户端使用Html.Encode()或AntiXss.HtmlEncode()。检查输入是否无害的唯一方法是在服务器端(通过服务层)进行

这似乎是一个限制。当且仅当视图具有一组预定义的输入时,一切正常。当需要动态创建它们时,情况就不同了

你们想过那种情况吗,伙计们

谢谢你对这件事的关注

罗兰
比利时布鲁塞尔

我不确定我是否完全理解您的问题,但必须指出,客户端输入有害性检查无论如何都是毫无价值的-任何想要提交有害输入的人只需删除安全检查即可。这可能就是为什么没有客户端API来检查它们的原因


因此,为什么要在客户端处理它们,因为您必须在服务器端重新执行它们?关于客户端检查的唯一有用性质是在提交前警告用户,他们无意中包含了有害代码。这真的是你的用户经常发生的事情吗?

我更了解你的观点。我天真地认为Html.Encode()可以用于我的目的。我的应用程序是AJAX驱动的,必须在服务器端进行强大的安全检查——这是唯一一个有信心的地方。我可以结束话题了,再次感谢。R