Php 在用户输入后输出会话-防止xss

Php 在用户输入后输出会话-防止xss,php,xss,Php,Xss,我有以下代码来回显刚刚登录的用户的用户名: echo $_SESSION['user']['username']." 如果我将代码更改为: echo htmlspecialchars $_SESSION['user']['username']." 我至少在保护自己免受低级XSS攻击?这取决于用户名的输出位置。如果它位于html标记之间,则是。如果它位于html属性中,则取决于该属性。请参阅OWASP XSS预防备忘单。这取决于用户名的输出位置。如果它位于html标记之间,则是。如果它位于ht

我有以下代码来回显刚刚登录的用户的用户名:

echo $_SESSION['user']['username']."
如果我将代码更改为:

echo htmlspecialchars $_SESSION['user']['username']."

我至少在保护自己免受低级XSS攻击?

这取决于用户名的输出位置。如果它位于html标记之间,则是。如果它位于html属性中,则取决于该属性。请参阅OWASP XSS预防备忘单。

这取决于用户名的输出位置。如果它位于html标记之间,则是。如果它位于html属性中,则取决于该属性。请参阅OWASP XSS预防备忘单。

默认情况下,函数htmlspecialchars不会对单引号(')进行编码,如果您的用户名在html属性中或javascript中回音,则会出现XSS

例如:

<script>
name='$YOUR_NAME_HERE$';
</script>

默认情况下,函数htmlspecialchars不编码单引号('),如果您的用户名在html属性或javascript中回音,则会有XSS

例如:

<script>
name='$YOUR_NAME_HERE$';
</script>

为什么首先允许在用户名中使用XSS字符?为什么首先允许在用户名中使用XSS字符?
echo htmlspecialchars($_SESSION['user']['username'], ENT_QUOTES);