Take potentially dangerous PDFs, office documents, or images and convert them to safe PDFs
Find a file
Alex Pyrgiotis a1c87a207a
container: Allow converting more document formats
Remove the association between MIME types and export filters, because
LibreOffice is able to auto-detect them on its own. Instead, ask
LibreOffice to simply convert the document to a .pdf.

This association was cumbersome for yet another reason; there are MIME
types that may be associated with more than one file type. That's why
it's better to let LibreOffice decide the proper filter for the
conversion.

Our current understanding is that this change won't widen our attack
surface for the following reasons:

* The output filters for PDF documents are pretty specific, and we don't
  affect the input filters somehow.
* The default behavior of LibreOffice on Alpine Linux is to disable
  macros.

Closes #369
2023-03-28 14:46:47 +03:00
.circleci ci: Do not deploy to PackageCloud 2023-03-27 13:41:08 +03:00
.github/workflows Build Windows MSI/.exe in GitHub actions 2023-02-23 09:12:06 +00:00
assets Update README screenshots for 0.4.0 release 2022-12-02 11:26:21 +00:00
container container: Allow converting more document formats 2023-03-28 14:46:47 +03:00
dangerzone Update typing hints for Mypy 1.1.1 2023-03-27 15:19:43 +03:00
dev_scripts Reformat code with Black 23 2023-03-27 15:17:23 +03:00
install Grab just the image ID 2023-03-09 19:04:59 +02:00
share tesseract: add new lanaguages and others 2023-03-16 14:23:30 +00:00
tests Update typing hints for Mypy 1.1.1 2023-03-27 15:19:43 +03:00
.gitignore migrate to pytest & test_docs -> tests/test_docs 2022-09-13 13:07:58 +01:00
BUILD.md Suggest users to install Poetry via pipx 2023-03-08 17:36:42 +02:00
CHANGELOG.md container: Allow converting more document formats 2023-03-28 14:46:47 +03:00
INSTALL.md ci: Remove Fedora 35 support 2023-01-16 18:48:09 +02:00
LICENSE Replace First Look Media references 2023-03-08 18:40:55 +02:00
Makefile Make 'make test' use the Python interpreter 2023-01-25 16:36:31 +00:00
poetry.lock Update Poetry lock file 2023-03-27 15:15:26 +03:00
pyproject.toml Replace First Look Media references 2023-03-08 18:40:55 +02:00
README.md Replace First Look Media references 2023-03-08 18:40:55 +02:00
RELEASE.md Remove stale QA requirement 2023-03-08 17:40:26 +02:00
setup-windows.py Windows: fix "Open with" dialog showing dz description 2023-01-16 11:38:08 +00:00
setup.py Replace First Look Media references 2023-03-08 18:40:55 +02:00
stdeb.cfg Replace First Look Media references 2023-03-08 18:40:55 +02:00

Dangerzone

Take potentially dangerous PDFs, office documents, or images and convert them to a safe PDF.

Settings Converting

Dangerzone works like this: You give it a document that you don't know if you can trust (for example, an email attachment). Inside of a sandbox, Dangerzone converts the document to a PDF (if it isn't already one), and then converts the PDF into raw pixel data: a huge list of RGB color values for each page. Then, in a separate sandbox, Dangerzone takes this pixel data and converts it back into a PDF.

Read more about Dangerzone in the official site.

Getting started

You can also install Dangerzone for Mac using Homebrew: brew install --cask dangerzone

Some features

  • Sandboxes don't have network access, so if a malicious document can compromise one, it can't phone home
  • Dangerzone can optionally OCR the safe PDFs it creates, so it will have a text layer again
  • Dangerzone compresses the safe PDF to reduce file size
  • After converting, Dangerzone lets you open the safe PDF in the PDF viewer of your choice, which allows you to open PDFs and office docs in Dangerzone by default so you never accidentally open a dangerous document

Dangerzone can convert these types of document into safe PDFs:

  • PDF (.pdf)
  • Microsoft Word (.docx, .doc)
  • Microsoft Excel (.xlsx, .xls)
  • Microsoft PowerPoint (.pptx, .ppt)
  • ODF Text (.odt)
  • ODF Spreadsheet (.ods)
  • ODF Presentation (.odp)
  • ODF Graphics (.odg)
  • Jpeg (.jpg, .jpeg)
  • GIF (.gif)
  • PNG (.png)

Dangerzone was inspired by Qubes trusted PDF, but it works in non-Qubes operating systems. It uses containers as sandboxes instead of virtual machines (using Docker for macOS, Windows, and Debian/Ubuntu, and podman for Fedora).

Set up a development environment by following these instructions.