5

例如,我有一个Javascript 驱动的表单创建工具。您使用链接添加元素的 html 块(如输入字段)和 TinyMCE 来编辑文本。这些是通过自动保存功能保存的,该功能在特定事件的后台执行 AJAX 调用。

被调用的保存函数执行数据库保护,但我想知道用户是否可以操纵 DOM 以添加他想要的任何内容(如自定义 HTML 或不需要的脚本)。

如果有的话,这有多安全?

首先想到的是我可能应该从收到的 html 代码中搜索并删除任何内联 javascript。

使用 PHP、JQuery、Ajax。

4

3 回答 3

5

一点都不安全。你永远不能相信客户。即使是新手也很容易在客户端修改 DOM(例如,只需为 Firefox 安装 Firebug)。

虽然可以接受来自客户端的 HTML,但请确保您在服务器端使用 PHP 正确验证和清理它。

于 2012-04-26T08:28:18.480 回答
1

您是否将完整的 inline-html 保存在数据库中?如果是这样,请尝试重新制作所有内容,仅将必要的数据保存到您的后端。如果以预期的方式接收所有字段,则还应控制它们。

所有 inline-js 都可以轻松删除。

永远不能相信用户!

于 2012-04-26T08:28:20.040 回答
1

绝对不安全,除非您当然采取措施使其安全。StackOverflow 允许某些标签被过滤,这样用户就不能做恶意的事情。你肯定需要做类似的事情。

我会选择清理输入服务器端,以便每个人都能清理他们的输入,无论他们是否阻止了脚本。使用类似这样的东西:http ://www.phpclasses.org/package/3746-PHP-Remove-unsafe-tags-and-attributes-from-HTML-code.html或http://grom.zeminvaders.net/html - 使用AJAX实现的消毒器将是一个很好的解决方案

于 2012-04-26T08:29:28.323 回答