我正在尝试使用authenticationentrypoint覆盖springboot中401情况下的标准错误响应
在开始方法中 我正在构建我的自定义错误对象,其中涉及以下行
String responseMsg = mapper.writeValueAsString(responseObject);
response.getWriter().write(responseMsg);
上述解决方案工作绝对正常,但 sonarqube 引发漏洞问题
有什么替代方案吗?或者我怎样才能克服声纳问题错误
提前致谢
更新:-我通过使用链接中的解决方案解决了它,然后替换不需要的字符
以下两个解决方案:根据 SonarQube https://rules.sonarsource.com/java/RSPEC-5131/ 对于像
这样的错误java/io/PrintWriter.write(Ljava/lang/String;)V 的使用可以是 容易受到 XSS 攻击
HTML 编码
import org.owasp.encoder.Encode;
public void endpoint(HttpServletRequest request, HttpServletResponse response) throws IOException
{
String data = request.getParameter("input");
PrintWriter writer = response.getWriter();
writer.print(Encode.forHtml(data));
}
设置内容类型
public void endpoint(HttpServletRequest request, HttpServletResponse response) throws IOException
{
String data = request.getParameter("input");
PrintWriter writer = response.getWriter();
response.setContentType("text/plain");
writer.print(data);
}