PHPackages                             dmk/mkcleaner - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Security](/categories/security)
4. /
5. dmk/mkcleaner

ActiveTypo3-cms-extension[Security](/categories/security)

dmk/mkcleaner
=============

Cleans files by removing any metadata with the help of mat2, exiftool and qpdf according to BSI guidelines.

v13.0.0(8mo ago)13.3k↓30%GPL-2.0-or-laterPHPCI passing

Since Apr 12Pushed 8mo ago2 watchersCompare

[ Source](https://github.com/DMKEBUSINESSGMBH/typo3-mkcleaner)[ Packagist](https://packagist.org/packages/dmk/mkcleaner)[ Docs](http://www.dmk-ebusiness.de/)[ RSS](/packages/dmk-mkcleaner/feed)WikiDiscussions 13.4 Synced 1mo ago

READMEChangelogDependencies (12)Versions (10)Used By (0)

[![](Resources/Public/Icons/ExtensionLogo.svg)](Resources/Public/Icons/ExtensionLogo.svg)

[![TYPO3 compatibility](https://camo.githubusercontent.com/82d43631a1de3291114630dd9ae2ecfcb23495adb970f325559f32332314e3c8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5459504f332d31312e3525323025374325323031322e342d6f72616e67653f6d61784167653d33363030267374796c653d666c61742d737175617265266c6f676f3d7479706f33)](https://camo.githubusercontent.com/82d43631a1de3291114630dd9ae2ecfcb23495adb970f325559f32332314e3c8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5459504f332d31312e3525323025374325323031322e342d6f72616e67653f6d61784167653d33363030267374796c653d666c61742d737175617265266c6f676f3d7479706f33)[![Latest Stable Version](https://camo.githubusercontent.com/5872def3484a2a8caf4afdde5708dda6b86cf359ac9464a85be3042948a7bfff/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f646d6b2f6d6b636c65616e65722e7376673f6d61784167653d33363030267374796c653d666c61742d737175617265266c6f676f3d636f6d706f736572)](https://packagist.org/packages/dmk/mkcleaner)[![Total Downloads](https://camo.githubusercontent.com/5eb0e8bda14f28d71767f45e6158c790fb85f518b8a1104f0d4e0ecd9c3a606e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f646d6b2f6d6b636c65616e65722e7376673f6d61784167653d33363030267374796c653d666c61742d737175617265)](https://packagist.org/packages/dmk/mkcleaner)[![Build Status](https://camo.githubusercontent.com/d1f851eff8a8b6ea6f3d16a7033a5b89c7067f0d0864baa21f2b77bd718f4f25/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f444d4b45425553494e455353474d42482f7479706f332d6d6b636c65616e65722f2e6769746875622f776f726b666c6f77732f70687063692e796d6c3f6d61784167653d33363030267374796c653d666c61742d737175617265266c6f676f3d6769746875622d616374696f6e73)](https://github.com/DMKEBUSINESSGMBH/typo3-mkcleaner/actions?query=workflow%3APHP-CI)[![License](https://camo.githubusercontent.com/5423437a6a49534f358acace01dfbc8c02480ecce1fb6b7862eb29aa50a175ed/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f646d6b2f6d6b636c65616e65722e7376673f6d61784167653d33363030267374796c653d666c61742d737175617265266c6f676f3d676e75)](https://packagist.org/packages/dmk/mkcleaner)

What does it do?
----------------

[](#what-does-it-do)

This extension cleans files by removing most of the metadata according to the BSI guidelines. This is a important step when it comes to security so no sensitive information is leaked. This is done with mat2 (), exiftool () and qpdf () in the moment. You need to install/provide those commands on the server CLI. If some command is not available system-wide the path can be configured with `$GLOBALS['TYPO3_CONF_VARS']['SYS']['binSetup']` or `$GLOBALS['TYPO3_CONF_VARS']['SYS']['binPath']`.

Check the logs for errors after uploading files etc.

As soon as everything is setup almost every file that is added/replaced with the TYPO3 FAL API will be cleaned. Furthermore there is a scheduler job that can be used for an initial cleanup of desired folders.

Adding a custom cleaner
-----------------------

[](#adding-a-custom-cleaner)

A custom cleaner can be added in `ext_localconf.php` like this:

```
\DMK\Mkcleaner\Cleaner\Registry::registerCleaner(\Vendor\Package\Cleaner\CustomCleaner::class, 100);
```

Every cleaner needs to implement `DMK\Mkcleaner\Cleaner\CleanerInterface`. Please take a look at the existing cleaners.

Drawbacks
---------

[](#drawbacks)

Please keep in mind that neither of the tools is perfect and might break files or leave metadata present. For example pdf files sometimes loose all links or svg files have changed content when mat2 would be used. Therefore pdf files are cleaned with exiftool and qpdf instead of mat2 and svg files are omitted completely. Please take care of having svg files without metadata yourself.

Changelog
---------

[](#changelog)

v13.0.0: Compatibility for TYPO3 12.4 and 13.4 only. Clean up is now done as well when files are replaced v12.0.1: Optimized description v12.0.0: Compatibility for TYPO3 11.5 and 12.4 only v8.0.2: add some error handling v8.0.1: resolve symlinks v8.0.0: initial release

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance62

Regular maintenance activity

Popularity23

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 76.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~58 days

Recently: every ~96 days

Total

10

Last Release

241d ago

Major Versions

8.7.x-dev → v12.0.02024-09-02

v12.0.1 → 13.4.x-dev2025-09-19

PHP version history (2 changes)v8.0.0PHP ^7.2 || ^7.3 || ^7.4

v12.0.0PHP ^8.1 || ^8.2 || ^8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/33e7d05adb80175dc82fc55b499e1d17d6252f45a3de0dc5a314181568f54f69?d=identicon)[hannesbochmann](/maintainers/hannesbochmann)

---

Top Contributors

[![hannesbochmann](https://avatars.githubusercontent.com/u/6302628?v=4)](https://github.com/hannesbochmann "hannesbochmann (26 commits)")[![mcrasser](https://avatars.githubusercontent.com/u/14163959?v=4)](https://github.com/mcrasser "mcrasser (8 commits)")

---

Tags

securitymetadataTYPO3 CMScleanerexiftoolqpdfbsimat2

###  Code Quality

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/dmk-mkcleaner/health.svg)

```
[![Health](https://phpackages.com/badges/dmk-mkcleaner/health.svg)](https://phpackages.com/packages/dmk-mkcleaner)
```

###  Alternatives

[phpseclib/phpseclib

PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.

5.6k434.8M1.3k](/packages/phpseclib-phpseclib)[defuse/php-encryption

Secure PHP Encryption Library

3.9k162.4M214](/packages/defuse-php-encryption)[mews/purifier

Laravel 5/6/7/8/9/10 HtmlPurifier Package

2.0k16.7M113](/packages/mews-purifier)[robrichards/xmlseclibs

A PHP library for XML Security

41478.1M118](/packages/robrichards-xmlseclibs)[spatie/laravel-csp

Add CSP headers to the responses of a Laravel app

8569.6M19](/packages/spatie-laravel-csp)[causal/fal-protect

Protect everything within /fileadmin/ based on associated folder and file restrictions (visibility, user groups and dates of publication).

1269.5k](/packages/causal-fal-protect)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
