2011-07-31 40 views
2

我有一个表单,用户可以填写新闻文章。这包含一个标题和正文。 对于每个页面都有一个唯一的标题,我使用用户输入(标题)在<title>标签都有效:标题标签中的XSS攻击

<title>$userinput</title> 

我想知道 - 这可能对用户进行跨站脚本攻击这条路?我应该使用htmlspecialchars来逃避这个用户输入吗?

这同样适用于<meta> -tags。我使用的是用户输入的描述:

<meta name="description" content="$userinput" /> 

可以将用户在<title><meta>标签都有效执行XSS攻击?

+1

只要您将未转义的HTML写入网页,就有可能存在XSS。 – zneak

+0

可能重复[应该我htmlspecialchar()变量?](http://stackoverflow.com/questions/638057/should-i-htmlspecialchar-variables-inside-title-title) – mercator

+0

永远不要相信用户输入! – DonSeba

回答

3

他可以先关闭所有标签:

</title><script> alert('here I am') </script>

0

这样就可以执行XSS攻击。

我会用htmlentities开头。 你也可以考虑HTML Purifier。 最后,您可能需要考虑PHPIDS。这对于大多数情况来说有点矫枉过正......