Data Security

Encryption, network attacks, memory corruption, injection and access control.

Introduction & Encryption

Encryption algorithms transform data to protect its confidentiality. Data that has not been encrypted is called plaintext ; encrypting the plaintext produces ciphertext ; decrypting the ciphertext recovers the original…

Security Design Principles

Encryption , Firewalls , and SQL Injection each cover one specific technique or vulnerability. This page covers the layer above all of them: the design principles a system should be built against in the first place, so…

Port Scanning & Firewalls

The Internet is a network of computers, or hosts , that exchange messages over connections . Those messages are split into small packets of data (often 1–2 KB), which can be interleaved so the network can be shared…

Buffer Overflows & Fuzzing

A buffer is a block of memory (or other storage) used to hold data temporarily. Three ordinary examples show why buffers are so common, and so easy to get wrong: a calculator program storing a user's typed input until…

SQL Injection

This page covers what SQL injection is, how attackers exploit it, the impact it can have, and how to prevent it — the A03:2021 "Injection" category of the OWASP Top 10 .

Unix Permissions

Unix-like systems control access to files, directories, devices and other system resources through a permission model whose core principle is simple: every access decision is based on the identity of the requesting user…

Data Protection Law and Ethics

Professional Ethics covers the general frameworks — deontological, virtue-based, utilitarian — for reasoning about a professional dilemma. This page is narrower and more concrete: what UK and EU data protection law…

Blockchain Fundamentals

A blockchain solves a specific problem: how can a group of mutually distrusting parties agree on a single shared record of events, with no central authority any of them has to trust? Satoshi Nakamoto's original Bitcoin…