我将用户输入从WYSIWYG
存储到SQL
数据库,
我需要保护免受XSS
攻击并找到solution
自上午使用WYSIWYG
并找到此solution
我的问题是哪种方法可以防范XSS
我需要使用HTML Purifier
或者我可以使用这种简单的方法;
echo htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
答案 0 :(得分:1)
最好的方法取决于您的用例。如果您使用htmlspecialchars()
,那么如果您的用户在WYSIWYG中输入粗体文字,它将在您的页面上显示为<b>bold text</b>
或<strong>bold text</strong>
。这可能不是你想要的。
如果您确实想从WYSIWYG输出格式化文本,则需要清理HTML输入。 HTML Purifier是一个很好的选择,并且很容易设置。
简而言之:这取决于您是否真的要输出格式化文本。 如果您不,htmlspecialchars()
会更容易,并且消耗更少的资源。既然你让用户使用所见即所得,我认为你会这样做,在这种情况下htmlspecialchars()
会破坏你甚至想要实现的目标。