您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何使用Spring Boot验证和清理HTTP Get?

如何使用Spring Boot验证和清理HTTP Get?

您需要对这些扫描工具有所注意,因为有时这些工具确实报告误报,有时甚至不需要更改代码。我不是checkmarx的专家,但是请确保该工具确实了解您正在使用的&调用的bean验证批注Jsoup.clean(personName, Whitelist.basic())

我想我做了所有必要的验证。还有什么???

首先,您需要了解控制器的应用程序级别 和业务级别 之间的区别。您在这里所做的是第二部分,第一部分可能是您设置中缺少的,而这完全是出于安全性的考虑,通常是针对整个应用程序进行设置。

您正在使用@Size批注来限制输入的大小,但这不能保证坏字符串-可能导致XSS攻击的字符串。然后,您正在使用callJsoup.clean(personName,Whitelist.basic()))清理此已验证大小的输入。由于我不确定该调用的作用,因此您需要确保新值是XSS-Safe。您会立即将该值传递给数据库调用,然后将其返回Integer调用者/客户端,因此我对这里发生XSS攻击的可能性非常悲观,但是工具却这么说。

必须缺少一些验证。如何使用Spring Boot正确验证HTTP GET

正如我之前解释的那样,输入验证是一个通常用于业务逻辑级别输入验证的术语,而输入清理/清理是关于安全性的。在Spring Boot环境中,这通常是通过使用 并启用XSS过滤器或编写自己的XSS过滤器并将其插入应用程序来完成的。首先是筛选器,然后是控制器,因此控制器将始终具有经过净化的价值,并且您将对该经过净化的价值进行业务验证。

这是一个广泛的答案和代码,您可能会用到谷歌。还建议阅读更多有关XSS攻击的信息。只需了解有多种方法可以实现相同的目标。

在最后一个链接中,提到了

防止这种攻击的第一步是输入验证。用户输入的所有内容均应精确验证,因为用户的输入可能会找到输出的方式。

&您没有在代码中进行操作,因此我猜没有XSS。

XSS安全性有两个方面- 首先,不允许对服务器端代码进行恶意输入;这可以通过使用XSS过滤器来完成;有时,允许恶意输入没有任何危害(假设您将恶意输入保存到数据库中,或者在API响应中返回)。

第二方面是指导HTML客户端有关可能的XSS攻击(如果我们确定API客户端将是HTML / UI的话),那么我们需要添加X-XSS- Protection标头,并通过以下代码完成。这将使浏览器可以打开其XSS保护功能(如果有)。

@Override受保护的void configure(HttpSecurity http)引发异常{

http.headers().xssProtection()....

}

我想,我在上面错误地写道,SpringSecurity提供了输入卫生过滤器,我猜是没有。将会验证并告知您。我已经在回答此问题的行上编写了自定义过滤器-在Spring MVC控制器中防止XSS

您还必须了解,Spring Boot也习惯于编写传统的MVC应用程序,其中服务器端也提供HTML来呈现。对于JSON响应(REST API),UI客户端可以控制要转义的内容和不进行转义的内容,因此会产生复杂性,因为JSON输出并不总是馈送到HTML客户端(也就是浏览器)。

Java 2022/1/1 18:16:43 有650人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶