Php 阻止指定的HTML元素
我想实行小票制 在前端,我想使用所见即所得编辑器tinyMCE,它具有strong和table等功能。 我想防止其他元素进入我的数据库,如脚本输入等。 你知道有一个PHP库可以排除所有其他元素,或者只允许tinyMCE创建的元素吗 在后端,我想使用条令-因此SQL注入应该通过这一点被拒绝Php 阻止指定的HTML元素,php,html,doctrine-orm,tinymce-4,Php,Html,Doctrine Orm,Tinymce 4,我想实行小票制 在前端,我想使用所见即所得编辑器tinyMCE,它具有strong和table等功能。 我想防止其他元素进入我的数据库,如脚本输入等。 你知道有一个PHP库可以排除所有其他元素,或者只允许tinyMCE创建的元素吗 在后端,我想使用条令-因此SQL注入应该通过这一点被拒绝 还是我错了?您可能需要使用不同的所见即所得策略。在HTML中写入DOM用户输入有很高的XSS注入风险 我建议使用WYSIWYG标记编辑器,如,并将用户输入以标记格式存储在数据库中。 然后,您可以使用类似PHP的
还是我错了?您可能需要使用不同的所见即所得策略。在HTML中写入DOM用户输入有很高的XSS注入风险 我建议使用WYSIWYG标记编辑器,如,并将用户输入以标记格式存储在数据库中。 然后,您可以使用类似PHP的库来解析标记内容并编写等效的HTML内容。 Markdown只有很少的文本格式选项,这减少了XSS攻击的机会
此外,您可能应该对用户内容执行一些服务器端检查,因为您永远无法确定您的用户是否使用了WYSIWYG编辑器来提交票据。。构建一个dom树,然后从上到下递归遍历该树,并使用一个不允许显式根元素或(如果您希望这样做的话)一个不允许显式根元素踢所有子树。谢谢,但是在写入数据库之前不可能这样做吗:strip_tags$_POST['message'],'p>'it is,但是任何HTML标记都会被压缩,包括和其他格式化标记。但是对于第二个参数,我认为我允许在其中包含这些标记?正确!但我宁愿使用降价方法,因为强烈建议避免在数据库中存储用户输入的HTML。它们可能是一些允许运行不需要的标记(如iframe或script)的技巧。好了,现在我明白了。您知道如何使用类似Jira Visual的SimpleMode在预览窗口中直接进行编辑吗?对于某些用户来说,在他们的文本输入中看到format参数*可能会令人困惑。如果不可能发送没有HTML标记的格式化文本,我应该使用TinyMCE来代替它,原因是什么?