如何使用请求方法 GET 在 spring 引导控制器的请求参数中防止跨帧脚本 (XFS)?

How to prevent Cross-Frame Scripting (XFS) in request parameter of spring boot controller with request method GET?

如何在 GET 请求中扫描请求参数以查找任何安全漏洞。

@RequestMapping(value = "/XX/YYY", method = {RequestMethod.GET, RequestMethod.HEAD})
public String myCustomMethod(Model model, HttpServletRequest request, HttpServletResponse response, 
        @RequestParam(value = "a", required = false) String a,
        @RequestParam(value = "b", required = false) String b)
{

}

在此代码示例中,我想检查参数 a/b 是否感染了类似 //"< i f r a m e src="http://www.goal.com/?"> .

的东西

我使用的预防措施是在将不受信任的输入添加到输出之前对开放 Web 应用程序安全项目 suggested by OWASP 进行编码。

我使用他们的 ESAPI 库。在此处找到

的链接

包含库后,在 configuration/.esapi 目录中找到 ESAPI.propertiesvalidation.properties 文件并将它们复制到项目的根目录(如果您使用的是 Maven,src/main/resources).这些文件指定了验证和编码策略;我通常对默认设置很好。

然后您可以像这样使用编码器:

Encoder encoder = ESAPI.encoder();
String aSafe = encoder.encodeForHTML(a); 
String bSafe = encoder.encodeForHTML(b);