所以我有一个网站,用户可以使用他们选择的用户名进行注册,并可以提交大量文本并添加评论.目前,为了避免使用XSS,我在输入数据的数据上使用strip_tags,我只输出正文中的数据,而不是属性.我目前正在对网站进行更改,其中之一是创建一个用户页面,当用户点击用户名(链接)时加载该用户页面.这看起来像:
...
我担心$ username变量,有人可以插入
...
我已经阅读了其他一些SO帖子,但没有一个给出了黑白回答.如果我在输出的所有文本上使用以下内容,除了输入上的strip_tags:
echo htmlspecialchars($string, ENT_QUOTES, 'UTF-8');
是否足以阻止所有XSS攻击,包括那些使用内联javascript:
语法的攻击?
另外,有没有办法删除实际的HTML标签而不删除像"我>你"这样的东西?
谢谢!