这是XSS-ed吗?
编辑:我的问题不是如何防止XSS,因为我已经知道如何,但它是如果用户可以绕过双引号删除。谢谢虽然:)这是XSS-ed吗?
这是容易被XSS:
<img src="" alt="<?php echo str_replace('"', '', $_POST['imageDescription']);?>" title="Image">
e.g如果用户键入"><script>alert('hacked');</script>
这是行不通的,因为双引号被剥离出来,但这个还是可以XSSed? 我总是验证数据,但我只是想知道。
security.stackexchange的帖子解释了这一点。显然,如果您替换双引号,则无法在alt图像中使用XSS。
但是,当您处理潜在的安全问题时,最好不要重新发明轮子。使用成熟的方法。
使用htmlspecialchars()
当您将PHP数据回显为HTML时,任何HTML符号都会转换为非危险字符。
有关如何避免XSS攻击的更多信息,请参阅look here。
是的,它仍然容易受到XSS的影响。有许多技术可以阻止这一点,并授予我不知道的很多。我相当确定的一件事是可以被滥用来规避这种情况,就是发送无效的UTF-8。其中,当通过代码(或通过其他方式)运行时,然后转换为有效的“角色”,从而不仅规避您的努力,而且还依靠它们来完成XSS攻击
承认需要更多工作,但那些做这些事情的人并不介意额外的工作
你在这里所做的被称为“黑名单”,这意味着你已经删除/不允许你认为有害的东西。方法是,你必须知道所有的这是有害的,无论现在和未来,这是有效的。当然,没有人可以做到这一点。
这种叫做白名单的兄弟姐妹方法,其中你只允许你知道你想要的输入僧侣的房间越窄越好,在某些情况下完全消失(如果列表足够小)。
但是,这些都不能100%地避免XSS攻击。唯一可以做到这一点的是输出转义。在HTML的情况下,执行此操作的功能是htmlspecialchars()
。 I recommend reading the manual for it,并特别注意它的注意事项。
“是的,它仍然容易受到XSS的影响。” - 如何? – Quentin
@Quentin我已更新我的帖子来解释至少一个可能的攻击媒介。 – ChristianF
可能重复的[如何防止与HTML/PHP的XSS?](http://stackoverflow.com/questions/1996122/how-to-prevent-xss-with-html-php) – Martin
@Martin请阅读我的编辑 –
您的问题是要求在某种情况下如何防止XSS。如果你已经知道如何防止XSS,那么你为什么不在这个问题上使用这种方法?如果POSTED数据是特定的模糊字符集,并且POST数据以特定方式格式化,则双引号字符串replace可能* *可能被忽略,但通过遵循在其他被引用的原始问题上给出的建议,这些尝试是无效的。 – Martin