我这样做。它似乎工作,但它是最好的方式?就像人们仍然可以发布XSS代码一样,还是应该抓住这一切?
$pattern[0] = '/script/';
$pattern[1] = '/onmouseover/';
$pattern[2] = '/onerror/';
$pattern[3] = '/onload/';
$replacement[0] = 'scr<b></b>ipt';
$replacement[1] = 'onmouse<b></b>over';
$replacement[2] = 'on<b></b>error';
$replacement[2] = 'on<b></b>load';
答案 0 :(得分:4)
要清理用户生成的HTML内容,我宁愿依赖现有的,积极维护的库(如HTML Purifier)的服务:
HTML Purifier是一个用PHP编写的符合标准的HTML过滤器库。 HTML Purifier不仅会删除所有恶意代码(更好地称为XSS),并且具有经过全面审核,安全且宽松的白名单,还可以确保您的文档符合标准,只有通过全面了解W3C的规范才能实现。