使用php保护简单所见即所得的最佳方法
我在我的网站上添加了一个简单的所见即所得编辑器。(它只允许B/I/U-不再允许)使用php保护简单所见即所得的最佳方法,php,security,xss,wysiwyg,Php,Security,Xss,Wysiwyg,我在我的网站上添加了一个简单的所见即所得编辑器。(它只允许B/I/U-不再允许) 我目前将所有内容作为html存储在数据库中,但添加或其他恶意代码很简单) PHP中安全解析此输入的最佳方法是什么? 如何将、等实现为白名单并对其他所有内容进行编码?使用带标签() string strip_标记(string$str[,string$allowed_标记]) 第二个参数是允许标记的列表;只需列出”,其余部分将被剥离 请注意如deceze所述: 此函数不修改您要修改的标记上的任何属性 允许使用允许的_
我目前将所有内容作为html存储在数据库中,但添加
或其他恶意代码很简单)
PHP中安全解析此输入的最佳方法是什么?
如何将
、
等实现为白名单并对其他所有内容进行编码?使用带标签()
string strip_标记(string$str[,string$allowed_标记])
第二个参数是允许标记的列表;只需列出”
,其余部分将被剥离
请注意如deceze所述:
此函数不修改您要修改的标记上的任何属性
允许使用允许的_标记,包括样式和onmouseover
恶作剧用户在发布以下文本时可能滥用的属性
将显示给其他用户
因此,它本身并不能提供针对恶意代码的全面保护 HTMLPurifier
我只是想把这个扔出去,可能会受到不可避免的打击。我不会使用strip_标签
保护您的所见即所得表单永远(除非你想激怒你的用户)
它不会保护您的表单,您可能会破坏用户体验
在他的博客中,他写了一段精彩的文章
我讨厌在博客上发表评论,我的评论是通过像strip_tags()这样的东西传递的,这实际上破坏了我想说的话。这让我想起了使用IM客户端时,它试图识别笑脸并用图像替换它们,这常常使响应难以解读
另一个原因
其他人在另一个答案中也写道,我喜欢:
$str = "10 appels is <than 12 apples";
var_dump(strip_tags($str));
我个人不会使用HTMLPurifier以外的任何东西
HTMLPurifier
请在此处尝试演示:
看看这个这个函数不会修改您允许使用允许的标签的标签上的任何属性,包括调皮用户在发布将显示给其他用户的文本时可能滥用的样式和onmouseover属性。
也许您可以为HTMLPurifier推荐正确的设置?在演示中使用它通常也会破坏12个苹果的示例。这对您来说是如何工作的?我相信您需要收集错误以确保安全。那应该行吗?是的,那是我找到的唯一的环境,我只是不太明白。为什么要“收集错误”…?:)但请让您的HTMLPurifier安装保持最新,就像任何软件一样。这是一个很难解决的问题,由于浏览器和HTML的使用随着时间的推移而变化,利用漏洞的情况一直存在。HTMLPurifier可能并不完美,但可能仍然允许使用脚本-以下是几个月前的一组最新漏洞。
string '10 appels is ' (length=13)