首页 > 解决方案 > 如何在验证之前通过弹簧过滤器传递角度请求?

问题描述

我在后端应用程序(带有 JAVA、Spring 的应用程序......)中有一个 XSS 过滤器,我需要在验证其余内容之前根据过滤器从前端应用程序(Angularjs)检查输入值是否正常。

到目前为止,我已经实现了:

表单(AngularJS)-> 验证(AngularJS)-> 过滤器(返回,弹簧)-> 存储

我需要:

表单 (AngularJS) -> 过滤器 (Back, Spring) -> 验证 (AngularJS) -> 存储

I have this filter in the back application.

<!--XSS filter-->
<filter>
    <display-name>XSSFilter</display-name>
    <filter-name>XSSFilter</filter-name>
    <filter-class>org.filter.XSSFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>XSSFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>


And I need to clean the XSS info


    $scope.save = function ($event) {

    -> Here I need to clean the XSS info

    //Validate
    if (!$scope.validate()) {
        manageValidationErrors();
        return;
    }

标签: angularjsspringservlet-filters

解决方案


您应该验证两次(无论如何)。一次在前端解决简单问题(电子邮件地址中缺少@),然后在后端(再次缺少@,但可能还会检查参考表等),然后再写入您的商店。这也可以解决您的问题,因为您可以在 XSS 过滤器之后在服务器上进行验证。

您建议的方法的问题是将未经验证的数据发送到服务器,应用 XSS 过滤器,发送回客户端以再次验证,然后发送回服务器,这将永远循环。


推荐阅读