中级
实现时间戳重放攻击检测
未完成
中级参考
代码结构已给出,请填写 ____ 处
def solve():
from pyodide.http import open_url
from io import StringIO
import pandas as pd, json
payloads_csv = open_url(____).read()
payloads = pd.read_csv(StringIO(____))
WINDOW = ____
received_ts = {}
def detect_replay(____):
try: payload = json.loads(____)
except: return False, '____'
ts = payload.get(____)
if ts is None: return False, '____'
key = f"____"
if key in received_ts:
return False, f'____'
if abs(____) > WINDOW:
return False, f'____'
received_ts[key] = received_at
return True, '____'
for _, row in payloads.iterrows():
ok, reason = detect_replay(____)
if not ok: print(____)
else: print(____)
示例
输入
solve()
期望输出
id=1 DEV001: OK id=2 DEV003: OK id=3 DEV004: OK id=4 DEV001: REJECT(missing_timestamp) id=5 DEV099: OK id=6 DEV002: OK id=7 DEV005: OK id=8 DEV001: REJECT(replay(ts=1748736000)) id=9 DEV007: OK id=10 DEV008: OK id=11 DEV009: OK id=12 DEV009: OK id=13 DEV002: OK id=14 DEV001: OK id=15 DEV007: OK id=16 DEV005: OK id=17 DEV001: OK id=18 DEV007: OK id=19 DEV007: OK id=20 DEV009: OK id=21 DEV005: OK id=22 DEV007: OK id=23 DEV001: OK id=24 DEV002: OK id=25 DEV003: OK id=26 DEV002: OK id=27 DEV003: OK id=28 DEV005: OK id=29 DEV003: OK id=30 DEV001: OK
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199