如何在不丢失HTML和删除JS/SQL的情况下清理字符串

Fai*_*eef 4 php sanitization rich-text-editor input-sanitization

我使用富文本编辑器接受来自客户端的HTML内容的输入数据.

在服务器端,我使用基于PHP的服务器并清理传入的数据.

是否有内置的PHP功能,它保留HTML代码并删除Javascript for XSS + SQL注入代码的存在.

Cho*_*roc 6

据我所知,没有这种内置功能.

来自http://php.net/manual/en/filter.filters.sanitize.php的清理过滤器不会涵盖您的请求.您可以查看http://php.net/manual/en/book.filter.php,但没有设置过滤器来过滤HTML.

我知道你不要求外部图书馆,但我认为这可以帮助你解决你面临的问题:http://htmlpurifier.org/


osh*_*ell 5

使用准备好的语句和参数化查询来防止SQL 注入

如果您只想允许将某些标签保存在数据库中,您可以使用strip_tags()。它使您可以允许某些 HTML 标签。但是,注释和 PHP 标签始终会被删除。

$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
Run Code Online (Sandbox Code Playgroud)