CodeQL 文档

跨站脚本

ID: java/xss
Kind: path-problem
Security severity: 6.1
Severity: error
Precision: high
Tags:
   - security
   - external/cwe/cwe-079
Query suites:
   - java-code-scanning.qls
   - java-security-extended.qls
   - java-security-and-quality.qls

单击以在 CodeQL 存储库中查看查询

直接将用户输入(例如,HTTP 请求参数)写入网页,而不先正确地清理输入,就会产生跨站脚本漏洞。

建议

为了防止跨站脚本,请考虑在将用户输入写入页面之前使用上下文输出编码/转义,或参考中提到的其他解决方案之一。

示例

以下示例显示 page 参数直接写入页面,使网站容易受到跨站脚本的攻击。

public class XSS extends HttpServlet {
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException {
		// BAD: a request parameter is written directly to the Servlet response stream
		response.getWriter().print(
				"The page \"" + request.getParameter("page") + "\" was not found.");

	}
}

参考

  • ©GitHub, Inc.
  • 条款
  • 隐私