【问题标题】:Creating DOM elements on the fly - check if the data is not harmful动态创建 DOM 元素 - 检查数据是否有害
【发布时间】:2010-04-27 17:28:27
【问题描述】:

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

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

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

$('#myform').append('); $('#myform').append('');

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

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

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

你们想过那种情况吗?

感谢您对此的关注。

罗兰 比利时布鲁塞尔

【问题讨论】:

    标签: asp.net asp.net-mvc json scripting cross-site


    【解决方案1】:

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

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

    【讨论】:

    • 我更理解你的观点。我天真地认为 Html.Encode() 可以用于我的目的。我的应用程序是 AJAX 驱动的,并且必须在服务器端进行强大的安全检查——这是唯一可以放心地进行检查的地方。我可以关闭主题了,再次感谢。 R.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 1970-01-01
    • 2012-03-06
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2018-07-09
    相关资源
    最近更新 更多