如何清理 Python 中的 url 字符串?

How to sanitize url string in Python?

我有一个 python 应用程序,它使用 URL 列表并生成 bash 脚本作为输出。

如何清理 URL 以便恶意用户无法注入将在我的基础架构上执行的 bash 命令。

例如:

http://www.circl.lu/a.php?rm -Rf /etc

我想 urllib 是一个解析 url 的选项,以转义有害字符。至少它看起来像是适合您的用例的好资源。请参阅 url-quoting.

的文档
from urllib.parse import quote

quote('touch foo', safe='/')
quote('rm -Rf /etc', safe='/')
quote('http://www.circl.lu/a.php?rm -Rf /etc', safe='/:?&')

#'touch%20foo'
#'rm%20-Rf%20/etc'
#'http://www.circl.lu/a.php?rm%20-Rf%20/etc'