Skip to content

角色边界、消息契约与拓扑选择:练习答案 ​

参考实现 ​

追加:

python
assert accept({**m,"status":"failed","sources":[]}) == "failed"
assert accept({**m,"sources":["doc:secret"]}) == "invalid_source"
assert accept({**m,"status":"failed","sender":"attacker"}) == "wrong_owner"
print("failure is authenticated too")

若错误消息不校验身份,任意发送者可伪造失败让任务降级或停止,完整性同样被破坏。

返回正文

用心记录每一步成长