首页 > 解决方案 > 在 Web 应用程序中调用 API 之前清理数据

问题描述

我有一个具有表单输入的 React 应用程序。用户将填写此表单,一旦完成,此数据将通过 POST 请求发送到将保留数据的服务(Spring Boot 应用程序)。Web 应用程序还具有搜索功能,并将通过 GET 请求将查询参数发送到同一个 Spring Boot 应用程序。

我正在使用过滤器在 Spring Boot 应用程序中接收数据时对其进行清理。

我的问题是,由于服务器端正在验证数据并去除可能的 XSS 攻击代码,是否也有必要在 React 应用端对输入到表单中的数据进行清理?如果是这样,我会在 API 调用之前执行此操作吗?即在将数据添加到 POST 有效负载之前,或者在从输入文本字段中读取数据后,是否有代码去除危险字符?

我在网上阅读了很多帖子,并在此处获得了答案。我知道在服务器端进行验证似乎最重要,因为客户端代码不可信。我不清楚的一点是,由于任何可能的攻击者都可以访问客户端代码,他们难道不能绕过客户端的任何验证机制,使其首先添加到客户端毫无意义吗?我现在能看到的唯一优势是尽早检测到危险输入。

谢谢

标签: reactjsrestsecuritysanitization

解决方案


进行客户端验证并非毫无意义——首先,它的用户体验很好——你不应该允许用户在输入字段中输入无效数据,否则在提交后他们将看到一连串的服务器端错误消息。

其次,它可以阻止临时攻击者,他们可能只是想看看如果他们在用户名字段中输入 ' 会发生什么......(sql 注入攻击)。但是,否则谁可能不会费心摆脱网络代理并开始全面攻击。


推荐阅读