Php 使用Javascript编辑和保存用户HTML-安全性如何?

Php 使用Javascript编辑和保存用户HTML-安全性如何?,php,javascript,jquery,html,ajax,Php,Javascript,Jquery,Html,Ajax,例如,我有一个支持Javascript的表单创建工具。您可以使用链接添加html元素块(如输入字段),并使用TinyMCE编辑文本。它们通过一个autosave函数保存,该函数在特定事件的后台执行AJAX调用 正在调用的save函数负责数据库保护,但我想知道用户是否可以操纵DOM来添加任何他想要的内容(如自定义HTML或不需要的脚本) 这有多安全 首先想到的是,我可能应该搜索并从收到的html代码中删除任何内联javascript 使用PHP、JQuery、Ajax。根本不安全。您可以永远不要信

例如,我有一个支持Javascript的表单创建工具。您可以使用链接添加html元素块(如输入字段),并使用TinyMCE编辑文本。它们通过一个autosave函数保存,该函数在特定事件的后台执行AJAX调用

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

这有多安全

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


使用PHP、JQuery、Ajax。

根本不安全。您可以永远不要信任客户。即使是新手,在客户端修改DOM也很容易(例如,只需安装Firefox的Firebug)


虽然可以从客户端接受HTML,但请确保在服务器端使用PHP对其进行正确的验证和清理。

是否在数据库中保存完整的内联HTML? 如果是这样,请尝试重新制作所有内容,并仅将Nessery数据保存到后端如果以预期方式接收所有字段,则也应控制这些字段

所有内联js都很容易删除


您可以永远不信任用户

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


我会选择清理输入服务器端,这样每个人都可以清理输入,不管他们是否阻止了脚本。使用这样的东西:或者用AJAX实现将是一个非常好的解决方案

所有的答案似乎都是正确的,但我将使用社区投票计数来选择最佳答案。谢谢大家!如果您需要清理用户输入HTML,这是一个非常好的库: