encoding

term

programmingweb dev

Representing data in a form a particular channel or reader can carry - a reversible transformation with no secrecy and no integrity attached.

The word gets used for three different things, and separating them prevents a family of security mistakes: encoding makes data transportable, encryption makes it unreadable without a key, and hashing makes it unrecoverable. Only the first is reversible by anyone. Layered encodings are also where filters go wrong - a value decoded once may still be encoded, and a check applied at the wrong layer sees something the destination will not. Percent-encoding, entity encoding and Base64 in one URL is not unusual, and every mismatch between what the filter parsed and what the target parses is a bypass.

Also known as: character encoding

All glossary entries