In particular, an attack is possible if the client accidentally
makes a request to a principal other than the original target
(perhaps by falling prey to phishing). In this case, this other
principal can maliciously re-use any discharge macaroons it
receives to discharge third-party caveats embedded in mac-
aroons for itself, thereby authorizing itself using contextual
caveat discharges from the client. To prevent such malicious
re-use, all discharge macaroons are required to be bound
to the authorizing macaroon before being sent along with
a request to the target. This binding is carried out by the
method M.PrepareForRequest(M), which binds the authoriz-
ing macaroon M to each discharge macaroon M′ ...