1. Go to this page and download the library: Download itools/svgsecuritycheck library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
itools / svgsecuritycheck example snippets
use Itools\SvgSecurityCheck\SvgSecurityCheck;
// upload.php: check the file, then store the original bytes
$result = SvgSecurityCheck::checkFile($_FILES['logo']['tmp_name']); // nothing throws: a missing path is a rejection too
if (!$result->ok) {
foreach ($result->errors as $violation) {
echo htmlspecialchars($violation->message), "<br>"; // <script> is not allowed in uploaded SVGs
}
exit;
}
move_uploaded_file($_FILES['logo']['tmp_name'], 'uploads/logo.svg');
// logo.php: serve it as an image
header('Content-Type: image/svg+xml');
readfile('uploads/logo.svg');
$result->ok; // true when nothing was found
$result->errors; // Violation[], one per distinct problem, in the order found
$violation->code; // 'element-not-allowed', stable across releases, so switch on it
$violation->detail; // 'script', text from the file, so encode it before output
$violation->message; // '<script> is not allowed in uploaded SVGs'
$violation->template; // '<%s> is not allowed in uploaded SVGs', for translation with Violation::TEMPLATES
SvgSecurityCheck::checkString($svg); // the same check on SVG source in a string
SvgSecurityCheck::rules(); // the allowlists as arrays; no option adds to them
SvgSecurityCheck::$maxErrors = 100; // the size limits are public static properties
header('X-Content-Type-Options: nosniff'); // never guess another type from the contents
header('Content-Security-Policy: sandbox'); // no script and no cookies
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.