我知道为了防止XSS,我们需要了解上下文。
当我们回显$userinput时,我们需要意识到这样一个事实:如果输入进入文本框值、textarea值或除法html区域,等等。
我想简化回送业务,这样我就可以使用一个函数来满足我的大部分回显需求。考虑到这一点,我把下面的函数组合在一起,但我不确定,依赖它是否是个好主意。
当然,我做了一些假设。也就是说,我总是为urls使用内置的urlencode。我虔诚地用‘或’或“来分隔属性。
考虑到这一点,我是否可以使用下面的安全回显而不是普通回显来防止XSS?
function safeecho($str)
{
return htmlentities($str, ENT_QUOTES, "UTF-8");
}我不确定的一件事是<Style>上下文。我见过人们谈论样式表的“表达式”问题。我不知道这是怎么处理的。但是,由于我不打算在样式表或javascript中输出用户输入,所以我不太担心这些事情!当我发现自己需要在js区域或样式表中输出用户输入时,我不会使用这个函数。但我仍然对你关于如何处理这些背景的评论感兴趣。但是,我还是很担心html和form对象这类常见的东西。
底线问题是强迫utf8和ent_quotes,我安全吗?
发布于 2012-03-25 06:20:43
Does实体会转义吗。如果是这样的话,基本上是可以的。您需要处理的javascript: urls始终存在问题。还请记住,像onclick这样的html属性实际上是javascript,所以您的函数在那里没有效果。你就得逃跑了。请参阅OWASP预防备忘单。关于CSS,如果可以的话,避免将用户数据放在那里。它需要一种基于白名单的键值验证方法。
https://stackoverflow.com/questions/9855787
复制相似问题