在滚动浏览所有python
选项时,我发现 python 包含一个选项“[turns] on hash randomization,因此__hash__()
str、bytes 和 datetime 对象的值被“salted”为不可预测的随机值。尽管它们在个体中保持不变Python 进程,它们在 Python 的重复调用之间是不可预测的。” (来源)。
官方文档参考了这个文档http://www.ocert.org/advisories/ocert-2011-003.html应该提供更多信息,但是,它没有提供任何信息,比如“精心制作的 HTTP 请求”好像。网站上的所有相关链接都已失效。我知道这可以通过调用来解决python -R
,但是,我对细节更感兴趣。
一个 HTTP 请求如何在几个小时内使用 100% 的服务器 CPU,随机化哈希值如何解决这个问题?它是否会造成某种死锁?(我知道如果脚本被破坏(无限 for/while 循环,goto
s)或正在执行一项非常昂贵的任务,则 HTTP 请求可能需要很长时间,但我认为情况并非如此)。