WordPress güvenliği için önerilen wp-config.php sabitleri

Aşağıdaki sabitleri wp-config.php dosyanızda, /* That's all, stop editing! Happy publishing. */ satırından önce ekleyin:

// Hataların ekranda görüntülenmesini kapatır (üretim ortamı için)
define('WP_DEBUG_DISPLAY', false);

// WordPress hata ayıklama modunu kapatır (genellikle false yapılır)
define('WP_DEBUG', false);

// Veritabanı hatalarında sitenin tamamen kapanmasını engeller
define('DIEONDBERROR', false);

// İzin verilmeyen dosya yüklemelerini engeller (örn: php dosyaları)
define('ALLOW_UNFILTERED_UPLOADS', false);

// Otomatik dosya modifikasyonlarını engeller (tema, eklenti güncelleme vs.)
define('DISALLOW_FILE_MODS', false);

// Site URL değiştirme işlemini kapatır (güvenlik için)
define('RELOCATE', false);

// Veritabanı onarım sayfasını devre dışı bırakır (gereksiz erişimi engeller)
define('WP_ALLOW_REPAIR', false);

// JavaScript dosyalarının birleştirilmesini devre dışı bırakır (performans için ayarlanabilir)
define('CONCATENATE_SCRIPTS', false);

Bu sabitlerin faydaları:

Sabit Adı Ne İşe Yarar?
WP_DEBUG Hata ayıklama modunu açar/kapatır
WP_DEBUG_DISPLAY Hataların ekranda gösterilmesini engeller
DIEONDBERROR Veritabanı hatasında site çökmesini engeller
ALLOW_UNFILTERED_UPLOADS Zararlı dosya yüklemelerini engeller
DISALLOW_FILE_MODS Tema/eklenti güncellemelerini engeller
RELOCATE Site URL’sinin otomatik değiştirilmesini engeller
WP_ALLOW_REPAIR Veritabanı onarım sayfasını kapatır
CONCATENATE_SCRIPTS JS dosya birleştirmeyi kapatır

Öneri

  • Canlı (production) sitelerde WP_DEBUG ve WP_DEBUG_DISPLAY mutlaka false olmalı.
  • DISALLOW_FILE_MODS false kalmalı ki güncellemeler yapılabilsin (kendi isteğinize göre).
  • ALLOW_UNFILTERED_UPLOADS güvenlik için false olmalı.

Örnek wp-config dosyası

<?php
// Veritabanı ayarları
define('DB_NAME', 'ornek_veritabani'); // Veritabanı adı
define('DB_USER', 'ornek_kullanici'); // Veritabanı kullanıcı adı
define('DB_PASSWORD', 'guclu_sifre_123'); // Veritabanı şifresi
define('DB_HOST', 'localhost'); // Genellikle localhost
define('DB_CHARSET', 'utf8mb4');
define('DB_COLLATE', '');

// Tablo ön eki
$table_prefix = 'wp_'; // Varsayılan olarak 'wp_' kullanılır. Güvenlik açısından farklı bir ön ek kullanmanız önerilir.

// Güvenlik anahtarları (örnek değerler — kendi siteniz için https://api.wordpress.org/secret-key/1.1/salt/ adresinden üretin)
define('AUTH_KEY', 'V?uNn$J@B[n5C`P%.c#zO3}JgTV9E^9G0^JH*Y|lzvZRuvMC6(!BL)pE/5SAYMc=');
define('SECURE_AUTH_KEY', 'rcWQv<43d8+A$hV{7mBUW}=4%>u|9KR~D]Z_9zn6pKyZ?KG@_ABd(GOhFSX8#Q+|');
define('LOGGED_IN_KEY', 'R)KXn@wK>R2e9TZc5m`4bN:q5VY>#B9&NpkZhdZ2c(gXT2^7x[~*UwL7Jjz*kG+Z');
define('NONCE_KEY', 'k8B#3Lu6D>^|<QGhEmiK9+JZc%=9g|aLufnX6@v^rN#Zn`b8{jLM#+_/oN_0E$](');
define('AUTH_SALT', 'EKc$4?7zh|eMJFxY_HC~3x&d+LzzVRA=|QMd7EwK=btP8%2Fk^M!HvbZW#HXm}Yy');
define('SECURE_AUTH_SALT', 'e5sz4pjX5Z3|ErPGn|U{UjFKJdRf.H}R5q8$CHuwjKr3MaG<>k9j=1v8zkgdU2ez');
define('LOGGED_IN_SALT', 'NxG6H|Hsm@mpzzk=6^gBHvU|Tu`PEy#2-AwnYcdRx*v>LB9f|MSzhBQ>+RDppDhv');
define('NONCE_SALT', 'ZKvJEeaPF63~Z3upqNJDAnQ5?%sZ.nNReN2k+V#n-Bxs^5J%5Db6MFt29RcEdZz2');

// Güvenlik ve yapılandırma sabitleri
define('DISALLOW_FILE_EDIT', true); // Tema/Eklenti düzenlemeyi kapat
define('DISALLOW_FILE_MODS', true); // Güncellemeleri/devre dışı bırakmaları kapat
define('COOKIEHASH', md5('https://ornekdomain.com'));
define('ALLOW_UNFILTERED_UPLOADS', false); // Filtrelenmemiş yüklemelere izin verme
define('DIEONDBERROR', false); // Veritabanı hatasında siteyi durdurma
define('RELOCATE', false); // Otomatik URL taşımasını kapat
define('WP_ALLOW_REPAIR', false); // Veritabanı onarım ekranını devre dışı bırak
define('WP_DEBUG_DISPLAY', false); // Hataları ekranda gösterme
define('CONCATENATE_SCRIPTS', false); // JS dosya birleştirmeyi kapat (isteğe bağlı)
define('FORCE_SSL_ADMIN', true); // Yönetici paneline SSL zorunlu
define('WP_DEBUG', false); // Geliştirici modu kapalı

// WordPress yolu
if (!defined('ABSPATH')) {
define('ABSPATH', dirname(__FILE__) . '/');
}

require_once ABSPATH . 'wp-settings.php';

Notlar:

 

  • DISALLOW_FILE_MODS true olduğu için WordPress otomatik güncelleme ve eklenti/tema yüklemeleri devre dışı kalır. Güncellemeleri manuel yapıyorsan sorun yok, istersen bunu false yapabilirsin.
  • COOKIEHASH sitene özel olarak ayarlandı.
  • FORCE_SSL_ADMIN ile admin paneli SSL zorunlu oldu.

    Bir yanıt yazın