2010-04-27 63 views
0

我已经发布了一个与此密切相关的问题。我与P. Haacked和S. Hanselman一起观看了Mix10视频。即时创建DOM元素 - 检查数据是否有害

我正在建立一个AJAX驱动的网站,其输入表单是在飞行中创建的。

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

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

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

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

这似乎是一个限制。当且仅当一个视图有一组预定义的输入时,所有情况都没有问题。当它是即时创建它们的时候,情况就不同了。

你有没有想过这种情况家伙?

感谢您对此的关注。

罗兰 布鲁塞尔,比利时

回答

0

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

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

+0

我更了解你的观点。我天真地认为Html.Encode()可用于我的目的。 我的应用程序是AJAX驱动的,并且必须在服务器端进行强大的安全检查 - 唯一可以放心使用的地方。 我可以关闭该主题,再次感谢。 R. – roland 2010-04-27 18:20:11