为什么不使用strip_tags()来防止xss攻击,而不是使用htmlspecialchars()?

为什么不使用strip_tags()来防止xss攻击,而不是使用htmlspecialchars()?,xss,htmlspecialchars,strip-tags,Xss,Htmlspecialchars,Strip Tags,如果我需要在模板中显示$\u GET值,为什么不使用strip\u tags()来防止xss攻击,而不是htmlspecialchars()?,因为strip\u标签并不能解决所有可能的滥用情况。诚然,它修复了最严重的违规行为,但也有其他情况,例如,当您自己将值插入到标记中时,可以将引号打断 考虑: 如果my string来自其他不受XSS保护的数据源,则它可能包含以下内容: “>的输入标记-和条带标记可能会或可能不会捕捉到这种情况。我似乎记得它查找,但在上面的字符串中找不到。,因为strip

如果我需要在模板中显示
$\u GET
值,为什么不使用
strip\u tags()
来防止xss攻击,而不是
htmlspecialchars()

,因为strip\u标签并不能解决所有可能的滥用情况。诚然,它修复了最严重的违规行为,但也有其他情况,例如,当您自己将值插入到
标记中时,可以将引号打断

考虑:

如果
my string
来自其他不受XSS保护的数据源,则它可能包含以下内容:
“>
的输入标记-和
条带标记
可能会或可能不会捕捉到这种情况。我似乎记得它查找
,但在上面的字符串中找不到。

,因为strip\u标签并不能解决所有可能的滥用情况。诚然,它修复了最严重的违规行为,但也有其他情况,例如,当您自己将值插入到
标记中时,可以将引号打断

考虑:

如果
my string
来自其他不受XSS保护的数据源,则它可能包含以下内容:
“>
的输入标记-和
条带标记
可能会或可能不会捕捉到这种情况。我似乎记得它查找
,但在上面的字符串中找不到。

,因为strip\u标签并不能解决所有可能的滥用情况。诚然,它修复了最严重的违规行为,但也有其他情况,例如,当您自己将值插入到
标记中时,可以将引号打断

考虑:

如果
my string
来自其他不受XSS保护的数据源,则它可能包含以下内容:
“>
的输入标记-和
条带标记
可能会或可能不会捕捉到这种情况。我似乎记得它查找
,但在上面的字符串中找不到。

,因为strip\u标签并不能解决所有可能的滥用情况。诚然,它修复了最严重的违规行为,但也有其他情况,例如,当您自己将值插入到
标记中时,可以将引号打断

考虑:

如果
my string
来自其他不受XSS保护的数据源,则它可能包含以下内容: 输入标记的
“>
条带标记的
可能会或可能不会捕捉到这种情况。我似乎记得它会在上面的字符串中查找
后接代码>

htmlspecialchars()可以转义所有能够在示例中添加的特殊字符,例如
警报(“您被黑客攻击”);

安全网站的主要部分是:

htmlspecialchars()-防止XSS
MySQLI准备语句-防止SQL注入

还有很多其他攻击,但这两种攻击对于世界上的每个网站都是必须的,否则,我将能够在1分钟内攻击你的网站(没有谎言)。

htmlspecialchars()可以避开所有能够添加在示例中的特殊字符,
警报(“你被黑客攻击”);

安全网站的主要部分是:

htmlspecialchars()-防止XSS
MySQLI准备语句-防止SQL注入

还有很多其他攻击,但这两种攻击对于世界上的每个网站都是必须的,否则,我将能够在1分钟内攻击你的网站(没有谎言)。

htmlspecialchars()可以避开所有能够添加在示例中的特殊字符,
警报(“你被黑客攻击”);

安全网站的主要部分是:

htmlspecialchars()-防止XSS
MySQLI准备语句-防止SQL注入

还有很多其他攻击,但这两种攻击对于世界上的每个网站都是必须的,否则,我将能够在1分钟内攻击你的网站(没有谎言)。

htmlspecialchars()可以避开所有能够添加在示例中的特殊字符,
警报(“你被黑客攻击”);

安全网站的主要部分是:

htmlspecialchars()-防止XSS
MySQLI准备语句-防止SQL注入



还有很多其他的攻击,但这两个是世界上每个网站必须的,否则,我将能够在1分钟内攻击你的网站(没有谎言)。

谢谢。非常有用的答案。两个都使用怎么样:
strip\u标签(htmlspecialchars($\u-GET))
?有意义吗?strip_标记是否仍然适用于转义的html特殊字符?没有,因为此时它不再包含
标记。首先是strip_标记,然后是htmlspecialchars如何?我认为这样,只有在您提到的特定情况下,仍然会保留标记,并且在大多数情况下,它们将被删除,所以你会更好吗?是的,如果你想得到最漂亮的输入,那就行了。我想这取决于你想达到什么目的;如果你打算允许基本格式,你就不能在任何时候真正去掉标记。在我的代码中输入不应该有格式,输入应该只包含id或字符串等。谢谢。非常有用的答案。什么关于同时使用:
strip_标记(htmlspecialchars($\u-GET))
?有意义吗?strip_标记是否仍然适用于转义的html特殊字符?没有,因为此时它不再包含
标记。首先是strip_标记,然后是htmlspecialchars如何?我认为这样,只有在您提到的特定情况下,仍然会保留标记,并且在大多数情况下,它们将被删除,所以会更好吗?是的,如果你想得到最漂亮的输入,那就行了。我想这取决于你想要达到什么;如果你计划允许基本格式,