使用Javascript编辑和保存用户HTML – 它有多安全?

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

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

如果有的话, 这有多安全

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

使用PHP,JQuery,Ajax。

根本不安全。 你永远不能相信客户 。 即使是初学者也很容易在客户端修改DOM(例如,只安装Firebug for Firefox)。

虽然从客户端接受HTML是好的,但请确保在服务器端使用PHP正确validation并清理它。

您是否在数据库中保存了完整的inline-html? 如果是这样,尝试重新制作所有内容,只将nessesary数据保存到后端。 如果按预期方式收到所有字段,也应对其进行控制。

所有inline-js都很容易删除。

永远不能相信用户!

绝对不安全,除非你采取措施使其安全。 StackOverflow允许某些标签,过滤使用户无法做出类似的事情。 你肯定需要做类似的事情。

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