# Defensive String Normalization

> Reject null input, remove dangerous path/control patterns, normalize Unicode representation, and only pass sanitized strings to filesystem, parser, or command boundaries.

Record: `algorithms:defensive-string-normalization`
Kind: algorithm
Canonical: https://banes-lab.com/ontology/algorithms#algorithms-defensive-string-normalization
Closure: https://banes-lab.com/json/records/algorithms/defensive-string-normalization/closure

Listed in [Algorithm contracts](https://banes-lab.com/api/records/algorithms.md), after [Adversarial Input Testing](https://banes-lab.com/records/algorithms/adversarial-input-testing.md) and before [Safe Arithmetic Contract](https://banes-lab.com/records/algorithms/safe-arithmetic-contract.md).

## Domain

- [Context verification](https://banes-lab.com/records/algorithms-domain/context-verification.md)

## Stage

- [act](https://banes-lab.com/records/stage/act.md)

## Axis

- [formalization](https://banes-lab.com/records/reasoning/axis-formalization.md)

## Tier

- [process](https://banes-lab.com/records/vocabulary/domain-tier-process.md)

## Math type

- [Computation](https://banes-lab.com/records/reasoning/math-type-computation.md)

## Force

- [Modularity](https://banes-lab.com/records/force/modularity.md)
- [Semantic consistency](https://banes-lab.com/records/force/semantic-consistency.md)

## Linked from

- [The derivation loop](https://banes-lab.com/ontology/reasoning/reasoning-loop-derivation-loop.md)
- [The axes](https://banes-lab.com/ontology/reasoning/the-axes.md)
- [The mathematics](https://banes-lab.com/ontology/reasoning/the-mathematics.md)
- [Domain tiers](https://banes-lab.com/ontology/schema/the-vocabulary-domain-tier.md)
- [The forces](https://banes-lab.com/ontology/schema/the-forces.md)
