大家好,

我最近提交了我的第一个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内部或开源感兴趣的话。

如果有人对贡献过程感兴趣,我很愿意回答你的问题!