flask_验证前端传入的数据

当前端传入的数据,后端是必须要验证,不然容易出现安全事故

如:sql 注入,跨站脚本攻击(XSS )和 HTTP批量请求(CSRF跨站请求伪造)

 

1、直接在视图函数中的业务逻辑中验证数据,如登录中的验证

         

   abort()的description 参数是中文的话,前端会显示乱码,需要指定content-type :text/html;charset=utf-8;

   abort()没有content-type 参数,但源码实际是调用的Response()类,所以另一种响应写法:

    

    返回模板对应的写法,即渲染前端:

          

 

      前端的逻辑代码

          

 

2、借助第三方工具验证,如:flask_wtf

   pip install flask_wtf,具体的使用可以查看源码,主要用于验证数据的

       

    

  

    RegisterForm 校验器参数属性说明:

    filters:会对前端输入的参数进行过滤处理,用这个参数对新数据进行校验,如:

        filters = [ lambda  x : x + ' h ' ,   ] ,

    widget:自定义组件,基本用不到

    render_kw:前端添加一些额外的属性,如:

          render_kw = { "class" : "form-control " }

 

   在视图函数中调用校验器检验数据

         

   form 可以获取前端传过来的所有数据,form的几个重要函数:

     validate:验证主函数

     process:验证数据

     data:获取所有数据

     errors:获取错误信息

   form 的初始化数据

    formdata ,flask,django里的multidict ,请求的content-type 是 application / x -www - form -urlencoded

    obj,调用另一个类的属性,form 检验

    data,字典形式的数组

    ps:通过前端请求,后端视图函数校验器获取数据是使用 formdata = request. form,通过ajax 或者postman通过 json 格式请求,视图函数校验器获取数据为 data = request.json

 

3、自定义校验类

  自定义类进行校验前端传入的数据,如:对前端传入的手机号码校验

       

 

   调用校验器

        

 

posted @ 2022-03-18 15:06  哩子吖  阅读(356)  评论(0)    收藏  举报