Our approach
OCR.now reduces common upload risks with format checks, size and page limits, pixel limits, temporary directories, and subprocess timeouts. These controls reduce exposure; they do not make an online OCR service suitable for every file.
Review the data-handling commitments in the privacy policy, and read the responsibilities in the OCR.now terms of use.
Application controls visible in the code
Image files are decoded before recognition rather than trusted by filename alone. PDFs must begin with a PDF signature and are rendered into bounded page images. OCR subprocesses receive timeouts, generated files stay inside a temporary directory, and the API returns controlled error messages instead of public filesystem paths.
Application controls visible in the code checks
- A request body limit constrains upload size.
- An image pixel limit reduces decompression-bomb exposure.
- A PDF page limit bounds one browser request.
- Accepted OCR language values come from installed server data.
- The processing API is excluded from search crawling and does not expose a browsable upload store.
Production controls outside the Flask code
A secure deployment also depends on the reverse proxy, operating system, TLS configuration, package updates, process permissions, monitoring, backups, and incident response. The example deployment adds restrictive browser headers and separates public static assets from the OCR process, but the operator must verify the live environment rather than assuming the example is active.
Production controls outside the Flask code checks
- Keep the OCR worker unprivileged and isolated from unrelated data.
- Apply rate and resource limits that match server capacity.
- Monitor temporary-file cleanup, process failures, and unusual request volume.
- Patch the operating system, OCR engine, PDF renderer, image libraries, and Python dependencies.
- Add malware controls where the risk model or organizational policy requires them.
Safer use
Do not upload credentials, private keys, authentication codes, or documents whose disclosure would create unacceptable harm. If a document is sensitive, use an approved offline tool or a controlled organizational environment. Recognition output should be treated as untrusted text before it is pasted into another system, script, spreadsheet, or database.
Safer use checks
- Check extracted links and commands before opening or running them.
- Validate data types and lengths before downstream import.
- Keep the source and a record of corrections for consequential workflows.
- Report a suspected deployment issue through the operator's published contact channel when one is available.
