我正在为一个客户机实现TinyMCE,这样他们就可以通过他们站点的管理面板中一个简单、熟悉的界面编辑前端内容。
我以前从未使用过TinyMCE,但请注意,您可以插入所需的任何标记,如果在通过查询运行TinyMCE之前没有转义它的内容,那么它将很高兴地保存到MySQL数据库中。
您甚至可以插入单引号,让它完全破坏您的SQL查询。
但是,当然,当我转义内容时,像段落标记这样的良性表示性内容会转换为HTML实体,因此所见即所得编辑器的整个要点都会失败,因为在前端显示存储的内容时,实体会被抛出。
那么,有没有一种方法可以让我“有选择地逃离”TinyMCE中的内容,保留像P和BR这样无辜的标签,但摆脱像SCRIPT、IFRAME等这样危险的标签呢。?我真的不想用str_replace()或其他方法手工编码和解码它们,但我也不想给我的客户端一个巨大的安全漏洞。
谢谢。
最佳答案
你试过htmlpurifier吗?创造奇迹。它的警告:大而慢,但你能有最好的。
http://htmlpurifier.org。
关于php - TinyMCE,PHP和MySQL:安全性和转义问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5768102/