我有一个带有表单输入的React应用程序。用户将填写此表格,完成后,该数据将通过POST请求发送到服务(Spring Boot应用程序),该服务将保留数据。该Web应用程序还具有搜索功能,并将通过GET请求将查询参数发送到同一Spring Boot应用程序。
我正在使用过滤器对在Spring Boot应用程序中接收到的数据进行消毒。
我的问题是,由于服务器端正在验证数据并剥离可能的XSS攻击代码,是否也需要对在React应用程序端输入到表单中的数据进行清理?如果是这样,我可以在进行API调用之前执行此操作吗?也就是说,在将数据添加到POST有效负载之前或从输入文本字段中读取数据后,是否有代码可以去除危险字符?
我已经在线阅读了大量帖子,并在此处回答了。我知道在服务器端进行验证似乎是最重要的,因为客户端代码不可信任。我尚不清楚的是,由于任何可能的攻击者都可以访问客户端代码,难道他们不能绕过客户端上的任何验证机制,从而一开始就毫无意义地添加客户端吗?我现在看到的唯一优势是尽早检测到危险输入。
谢谢
答案 0 :(得分:0)
进行客户端验证并不是没有意义的-首先,它是良好的用户体验-您绝对不应允许用户在输入字段中输入无效数据,否则在提交后,它们会出现一连串的服务器端错误消息。
第二,它可以阻止那些只是想看看如果在用户名字段中输入'...的随便攻击者(SQL注入攻击)。但是否则,谁可能不费心去获取Web代理并发起全面攻击。