V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
wzx155
V2EX  ›  Python

大佬们, Python 我 django 写了一个中间件,会对所有接口请求 request 的 get 和 post 的传值做校验,判断是否有非法字符,请问怎么把 request 中的非法字符去除然后 request 继续往下正常进行啊。

  •  
  •   wzx155 · 2021-12-04 18:32:54 +08:00 via Android · 2422 次点击
    这是一个创建于 1074 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大佬们,Python 我 django 写了一个中间件,会对所有接口请求 request 的 get 和 post 的传值做校验,判断是否有非法字符,我现在只会判断,请问大佬们怎么把 request 中的非法字符去除然后 request 继续往下正常进行啊。

    现在我不知道怎么对 request 修改?
    9 条回复    2021-12-05 16:44:01 +08:00
    ila
        1
    ila  
       2021-12-04 18:35:38 +08:00 via Android
    view 里怎么获取,中间件里也是如此。
    然后通过内置产量传递,搜索下
    huyujievip
        2
    huyujievip  
       2021-12-04 18:36:54 +08:00 via iPhone
    话说你只要不 return ,不就一直可以写业务逻辑嘛?
    或者说,每个入口都有一个 request 入参,在判断函数里面判断完成后,这个对象可以继续传给其他函数使用的
    ila
        3
    ila  
       2021-12-04 18:42:01 +08:00 via Android
    @ila session 产变量
    wzx155
        4
    wzx155  
    OP
       2021-12-04 18:44:49 +08:00 via Android
    @huyujievip 大佬,我现在是不知道怎么对非法的值修改,我想判断出有非法字符后先把非法字符删除,但是不知道怎么操作 request 中的传入参数,把参数中的非法字符删除。
    elboble
        6
    elboble  
       2021-12-04 20:20:29 +08:00
    middleware 里 process_request 里处理完后,return none 就沿原路径往下跑。

    request 里有 header ,body 等,如果是 get ,post ,有相应的结构对应,这个和 view 里是一样的。
    ila
        7
    ila  
       2021-12-04 21:35:22 +08:00 via Android
    @generated 不建议直接修改传参,可以参考 flask 做法
    iseki
        8
    iseki  
       2021-12-04 21:37:57 +08:00
    你这个工具是用在什么场合的啊,总感觉好危险
    nonduality
        9
    nonduality  
       2021-12-05 16:44:01 +08:00
    Django 自称重视安全,forms 有校验参数的功能,需要的时候在 forms 里头写校验逻辑。除非需求特别,一般都不需要自己搞中间件来校验。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3834 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 00:54 · PVG 08:54 · LAX 16:54 · JFK 19:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.