Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java中过滤输入文本中的特殊字符以防止XSS攻击?_Java_Xss - Fatal编程技术网

如何在java中过滤输入文本中的特殊字符以防止XSS攻击?

如何在java中过滤输入文本中的特殊字符以防止XSS攻击?,java,xss,Java,Xss,我正在尝试阻止特殊字符,如(&、%,-->,我在代码中看到一些错误。您使用原语(char)作为对象(equals方法)。此外,您不在要测试的字符周围加引号。您应该像这样比较字符 u == '%' 我看到你也比较了一个字符串“-”,但同样,它是错误的,你应该使用 "--".equals(u) 我忘了添加,比较单引号字符时应该使用“\” 如果希望使用对象进行测试,可以使用该行创建角色对象: Character u = aa.charAt(i); 但是由于您的代码很简单,我认为它不是很有用。我

我正在尝试阻止特殊字符,如(&、%,-->,我在代码中看到一些错误。您使用原语(char)作为对象(equals方法)。此外,您不在要测试的字符周围加引号。您应该像这样比较字符

u == '%'
我看到你也比较了一个字符串“-”,但同样,它是错误的,你应该使用

"--".equals(u)
我忘了添加,比较单引号字符时应该使用“\”

如果希望使用对象进行测试,可以使用该行创建角色对象:

 Character u = aa.charAt(i);

但是由于您的代码很简单,我认为它不是很有用。

我看到您的代码中有一些错误。您使用原语(char)作为对象(equals方法)。此外,您也没有在希望测试的字符周围加引号。您应该像这样比较字符

u == '%'
我看到你也比较了一个字符串“-”,但同样,它是错误的,你应该使用

"--".equals(u)
我忘了添加,比较单引号字符时应该使用“\”

如果希望使用对象进行测试,可以使用该行创建角色对象:

 Character u = aa.charAt(i);

但是由于您的代码很简单,我认为它不是很有用。

我看到您的代码中有一些错误。您使用原语(char)作为对象(equals方法)。此外,您也没有在希望测试的字符周围加引号。您应该像这样比较字符

u == '%'
我看到你也比较了一个字符串“-”,但同样,它是错误的,你应该使用

"--".equals(u)
我忘了添加,比较单引号字符时应该使用“\”

如果希望使用对象进行测试,可以使用该行创建角色对象:

 Character u = aa.charAt(i);

但是由于您的代码很简单,我认为它不是很有用。

我看到您的代码中有一些错误。您使用原语(char)作为对象(equals方法)。此外,您也没有在希望测试的字符周围加引号。您应该像这样比较字符

u == '%'
我看到你也比较了一个字符串“-”,但同样,它是错误的,你应该使用

"--".equals(u)
我忘了添加,比较单引号字符时应该使用“\”

如果希望使用对象进行测试,可以使用该行创建角色对象:

 Character u = aa.charAt(i);

但是由于你的代码很简单,我认为它不是很有用。

你在字符文本方面有一些基本的语法错误,例如
u.equals(%)
应该是
u.equals(%)
等等,但是如果你使用正则表达式,你可以扔掉大部分代码:

boolean ok = !username.matches(".*[%<>&;'\0-].*");
boolean ok=!username.matches(“.[%&;”\0-].*);

方括号中的字符是字符类,表示“任意一个”列出的字符。如果这些字符中有任何一个在输入中,整个表达式都将匹配,因此对此类匹配的否定表示用户名不包含非法字符。

您在字符文本中有一些基本语法错误,例如
u.equals(%)
应该是
u.equals('%”)
etc,但如果使用正则表达式,您可以扔掉大部分代码:

boolean ok = !username.matches(".*[%<>&;'\0-].*");
boolean ok=!username.matches(“.[%&;”\0-].*);

方括号中的字符是字符类,表示“任意一个”列出的字符。如果这些字符中有任何一个在输入中,整个表达式都将匹配,因此对此类匹配的否定表示用户名不包含非法字符。

您在字符文本中有一些基本语法错误,例如
u.equals(%)
应该是
u.equals('%”)
etc,但如果使用正则表达式,您可以扔掉大部分代码:

boolean ok = !username.matches(".*[%<>&;'\0-].*");
boolean ok=!username.matches(“.[%&;”\0-].*);

方括号中的字符是字符类,表示“任意一个”列出的字符。如果这些字符中有任何一个在输入中,整个表达式都将匹配,因此对此类匹配的否定表示用户名不包含非法字符。

您在字符文本中有一些基本语法错误,例如
u.equals(%)
应该是
u.equals('%”)
etc,但如果使用正则表达式,您可以扔掉大部分代码:

boolean ok = !username.matches(".*[%<>&;'\0-].*");
boolean ok=!username.matches(“.[%&;”\0-].*);

方括号中的字符是字符类,表示“任意一个”列出的字符。如果这些字符中有任何一个在输入中,整个表达式都将匹配,因此对此类匹配的否定表示用户名不包含非法字符。

如果您阻止这些字符,您的应用程序将仍然容易受到XSS攻击。您缺少一些危险的字符。 与其尝试识别坏字符(黑名单),为什么不检查它只包含允许的字符(白名单)。通常允许的字符集非常有限


另外,请查看OWASP XSS预防备忘单。

如果您阻止这些字符,您的应用程序仍然会受到XSS的攻击。您缺少一些危险的字符。 与其尝试识别坏字符(黑名单),为什么不检查它只包含允许的字符(白名单)。通常允许的字符集非常有限


另外,请查看OWASP XSS预防备忘单。

如果您阻止这些字符,您的应用程序仍然会受到XSS的攻击。您缺少一些危险的字符。 与其尝试识别坏字符(黑名单),为什么不检查它只包含允许的字符(白名单)。通常允许的字符集非常有限


另外,请查看OWASP XSS预防备忘单。

如果您阻止这些字符,您的应用程序仍然会受到XSS的攻击。您缺少一些危险的字符。 与其尝试识别坏字符(黑名单),为什么不检查它只包含允许的字符(白名单)。通常允许的字符集非常有限

还可以查看OWASP XSS预防备忘单。