大家好,
我最近提交了我的第一个Django贡献,并且它得到了合并。非常激动,因为Django是一个被广泛使用的框架。
这个问题与ASGI请求处理有关。在 `ASGIRequest.__init__` 中,Django使用 `str.removeprefix()` 将 `script_name` 从请求路径中去掉以计算 `path_info`。
问题是 `removeprefix()` 只是对原始字符串进行操作,它并不检查路径界限。
举例:
script_name = “/myapp”
path = “/myapplication/page”
以前可能会产生:
path_info = “lication/page”
因为 “/myapp” 被去除了,即使它不是一个有效的路径前缀。
修复确保前缀只有在它是实际有效的路径段界限时才会被去除。
工单:[https://code.djangoproject.com/ticket/36940]
PR:[https://github.com/django/django/pull/20749]
Django maintainers在整个过程中非常有帮助。我非常推荐尝试贡献,如果你对Django内部或开源感兴趣的话。
如果有人对贡献过程感兴趣,我很愿意回答你的问题!
评论 (0)