reactjs - 在 Web 应用程序中调用 API 之前清理数据
问题描述
我有一个具有表单输入的 React 应用程序。用户将填写此表单,一旦完成,此数据将通过 POST 请求发送到将保留数据的服务(Spring Boot 应用程序)。Web 应用程序还具有搜索功能,并将通过 GET 请求将查询参数发送到同一个 Spring Boot 应用程序。
我正在使用过滤器在 Spring Boot 应用程序中接收数据时对其进行清理。
我的问题是,由于服务器端正在验证数据并去除可能的 XSS 攻击代码,是否也有必要在 React 应用端对输入到表单中的数据进行清理?如果是这样,我会在 API 调用之前执行此操作吗?即在将数据添加到 POST 有效负载之前,或者在从输入文本字段中读取数据后,是否有代码去除危险字符?
我在网上阅读了很多帖子,并在此处获得了答案。我知道在服务器端进行验证似乎最重要,因为客户端代码不可信。我不清楚的一点是,由于任何可能的攻击者都可以访问客户端代码,他们难道不能绕过客户端的任何验证机制,使其首先添加到客户端毫无意义吗?我现在能看到的唯一优势是尽早检测到危险输入。
谢谢
解决方案
进行客户端验证并非毫无意义——首先,它的用户体验很好——你不应该允许用户在输入字段中输入无效数据,否则在提交后他们将看到一连串的服务器端错误消息。
其次,它可以阻止临时攻击者,他们可能只是想看看如果他们在用户名字段中输入 ' 会发生什么......(sql 注入攻击)。但是,否则谁可能不会费心摆脱网络代理并开始全面攻击。
推荐阅读
- azure - Terraform Azure 服务主体客户端密码过期
- c# - 为什么这个类层次结构违反 LSP?
- javascript - 根据域白名单设置 cookie 策略
- microsoft-graph-api - 如何获取消息的 immutalbeId
- sql - SQL Server:在选择语句中按不同条件转换列
- c++ - 在没有 XCHG 的情况下实现自旋锁?
- go - 如何读取 app.yaml 中的环境变量?
- typescript - Vue 3 + Typescript - 如何查看类属性
- simulator - Ubuntu 20.04 在 gem5 模拟器中使用共享库
- android - 从 webview 打印功能保存 PDF 总是产生 0 大小的无效 PDF 文件