mirror of
https://github.com/postgres/postgres.git
synced 2025-06-30 21:42:05 +03:00
Make cancel request keys longer
Currently, the cancel request key is a 32-bit token, which isn't very much entropy. If you want to cancel another session's query, you can brute-force it. In most environments, an unauthorized cancellation of a query isn't very serious, but it nevertheless would be nice to have more protection from it. Hence make the key longer, to make it harder to guess. The longer cancellation keys are generated when using the new protocol version 3.2. For connections using version 3.0, short 4-bytes keys are still used. The new longer key length is not hardcoded in the protocol anymore, the client is expected to deal with variable length keys, up to 256 bytes. This flexibility allows e.g. a connection pooler to add more information to the cancel key, which might be useful for finding the connection. Reviewed-by: Jelte Fennema-Nio <postgres@jeltef.nl> Reviewed-by: Robert Haas <robertmhaas@gmail.com> (earlier versions) Discussion: https://www.postgresql.org/message-id/508d0505-8b7a-4864-a681-e7e5edfe32aa@iki.fi
This commit is contained in:
@ -191,8 +191,8 @@ extern PGDLLIMPORT pg_time_t MyStartTime;
|
||||
extern PGDLLIMPORT TimestampTz MyStartTimestamp;
|
||||
extern PGDLLIMPORT struct Port *MyProcPort;
|
||||
extern PGDLLIMPORT struct Latch *MyLatch;
|
||||
extern PGDLLIMPORT bool MyCancelKeyValid;
|
||||
extern PGDLLIMPORT int32 MyCancelKey;
|
||||
extern PGDLLIMPORT char MyCancelKey[];
|
||||
extern PGDLLIMPORT uint8 MyCancelKeyLength;
|
||||
extern PGDLLIMPORT int MyPMChildSlot;
|
||||
|
||||
extern PGDLLIMPORT char OutputFileName[];
|
||||
|
Reference in New Issue
Block a user