使用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将是一个非常好的解决方案