如何使用请求方法 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.properties
和 validation.properties
文件并将它们复制到项目的根目录(如果您使用的是 Maven,src/main/resources
).这些文件指定了验证和编码策略;我通常对默认设置很好。
然后您可以像这样使用编码器:
Encoder encoder = ESAPI.encoder();
String aSafe = encoder.encodeForHTML(a);
String bSafe = encoder.encodeForHTML(b);
如何在 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.properties
和 validation.properties
文件并将它们复制到项目的根目录(如果您使用的是 Maven,src/main/resources
).这些文件指定了验证和编码策略;我通常对默认设置很好。
然后您可以像这样使用编码器:
Encoder encoder = ESAPI.encoder();
String aSafe = encoder.encodeForHTML(a);
String bSafe = encoder.encodeForHTML(b);