⏲️ Estimated reading time: 4 min
Cum să Permiți Încărcarea Fișierelor Personalizate în WordPress în Siguranță. WordPress restricționează implicit anumite tipuri de fișiere pentru a preveni riscuri de securitate. Totuși, dacă ai nevoie să încarci fișiere precum SVG, JSON, WebP, ZIP, APK, PSD, trebuie să faci câteva ajustări în site-ul tău. În acest articol, îți voi arăta cum să permiți aceste fișiere și, în același timp, să menții securitatea site-ului tău.
1. De ce să Permitem Mai Multe Tipuri de Fișiere?
WordPress blochează unele tipuri de fișiere din motive de securitate. Însă, în funcție de nevoile tale, ai putea dori să încarci:
- SVG – Fișiere grafice scalabile
- JSON – Fișiere pentru setări și date
- WebP – Format de imagine optimizat
- ZIP & RAR – Arhive de fișiere
- APK – Pachete pentru aplicații Android
- PSD – Fișiere Adobe Photoshop
Prin modificarea setărilor, putem permite aceste formate, dar trebuie să aplicăm măsuri de protecție pentru a preveni atacurile XSS și alte vulnerabilități.
2. Cum Adăugăm Suport pentru Mai Multe Tipuri de Fișiere?
Codul PHP pentru activarea extensiilor personalizate
Adaugă următorul cod în fișierul functions.php
al temei tale pentru a permite încărcarea mai multor tipuri de fișiere:
function custom_mime_types( $mimes ) {
// Adăugăm extensii noi
$mimes['aac'] = 'audio/aac';
$mimes['ogv'] = 'audio/ogg';
$mimes['svg'] = 'image/svg+xml';
$mimes['webp'] = 'image/webp';
$mimes['json'] = 'application/json';
$mimes['svgz'] = 'image/svg+xml';
$mimes['rar'] = 'application/vnd.rar';
$mimes['zip'] = 'application/zip';
$mimes['woff'] = 'font/woff';
$mimes['gif'] = 'image/gif';
$mimes['apk'] = 'application/vnd.android.package-archive';
$mimes['psd'] = 'image/vnd.adobe.photoshop';
$mimes['wmv'] = 'video/x-ms-wmv';
// Eliminăm fișierele periculoase
unset($mimes['exe']);
return $mimes;
}
add_filter( 'upload_mimes', 'custom_mime_types', 1, 1 );
Acest cod permite încărcarea mai multor tipuri de fișiere și elimină fișierele executabile .exe
, care pot reprezenta un risc major de securitate.
3. Protejarea Fișierelor SVG și JSON
Fișierele SVG pot conține cod JavaScript malițios, iar JSON poate fi accesat direct din browser, ceea ce poate expune date sensibile. Vom implementa două măsuri de securitate:

Sanitizarea Fișierelor SVG
Adaugă acest cod pentru a curăța fișierele SVG înainte de a fi încărcate:
function sanitize_svg($file) {
if (strpos($file['type'], 'svg') !== false) {
if (!current_user_can('manage_options')) {
$file['error'] = 'Doar administratorii pot încărca fișiere SVG.';
return $file;
}
$svg = file_get_contents($file['tmp_name']);
require_once __DIR__ . '/svg-sanitizer/autoload.php';
$sanitizer = new enshrined\svgSanitize\Sanitizer();
$clean_svg = $sanitizer->sanitize($svg);
file_put_contents($file['tmp_name'], $clean_svg);
}
return $file;
}
add_filter('wp_handle_upload_prefilter', 'sanitize_svg');
Acest cod:
✅ Permite încărcarea SVG doar pentru administratori
✅ Curăță SVG-ul pentru a preveni atacurile XSS
Blocarea Accesului Direct la Fișiere JSON
Dacă ai fișiere JSON pe server, acestea pot fi accesate direct din browser. Adaugă acest cod pentru a preveni acest lucru:
function block_json_access() {
if (strpos($_SERVER['REQUEST_URI'], '.json') !== false) {
header("HTTP/1.1 403 Forbidden");
exit;
}
}
add_action('init', 'block_json_access');
✅ Blochează accesul direct la fișiere JSON
✅ Împiedică expunerea accidentală a datelor
4. Concluzie
Prin adăugarea acestui cod, îți poți extinde tipurile de fișiere permise în WordPress în siguranță. Ai acum suport pentru fișierele SVG, JSON, WebP, ZIP, APK și altele, dar și protecție împotriva atacurilor XSS și accesului neautorizat.
Dacă ai întrebări sau ai nevoie de ajutor pentru implementare, lasă un comentariu! 🚀
📩 Ai întrebări sau sugestii? Lasă un comentariu sau contactează-ne!
Only logged-in users can submit reports.