# Output Encoding

Record: `arch:output-encoding`
Kind: mechanism
Layer: [Security Core](https://banes-lab.com/records/layer/security-core.md)
Severity: mandatory
Scope: UI, API, serialization
Canonical: https://banes-lab.com/ontology#arch-output-encoding

## Repair

- Refactored by: Encode Output, Use Safe Templates
- Detected by: raw HTML/SQL/shell output paths
- Violated by: unescaped user-controlled output
- Measured by: unsafe sink count
- Enforced by: security linting

## requires

- [Context-Aware Encoding](https://banes-lab.com/records/lex/context-aware-encoding.md)

## reinforces

- [Injection Prevention](https://banes-lab.com/records/lex/injection-prevention.md)

## enables

- [Safe Rendering](https://banes-lab.com/records/lex/safe-rendering.md)

## conflicts-with

- [Raw Output Rendering](https://banes-lab.com/records/lex/raw-output-rendering.md)

## tensions-with

- [Formatting Flexibility](https://banes-lab.com/records/lex/formatting-flexibility.md)

## tensions

- [Output Encoding Formatting Flexibility](https://banes-lab.com/records/tension/formatting-flexibility-output-encoding.md)
