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

2021-12-04 18:32:54 +08:00
 wzx155
大佬们,Python 我 django 写了一个中间件,会对所有接口请求 request 的 get 和 post 的传值做校验,判断是否有非法字符,我现在只会判断,请问大佬们怎么把 request 中的非法字符去除然后 request 继续往下正常进行啊。

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

request 里有 header ,body 等,如果是 get ,post ,有相应的结构对应,这个和 view 里是一样的。
ila
2021-12-04 21:35:22 +08:00
@generated 不建议直接修改传参,可以参考 flask 做法
iseki
2021-12-04 21:37:57 +08:00
你这个工具是用在什么场合的啊,总感觉好危险
nonduality
2021-12-05 16:44:01 +08:00
Django 自称重视安全,forms 有校验参数的功能,需要的时候在 forms 里头写校验逻辑。除非需求特别,一般都不需要自己搞中间件来校验。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/820054

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX