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.

Kodlar Kodlayana, Kahveler Bana! ☕

Burada paylaştığım içerikler projelerinde işine yaradıysa veya sana zaman kazandırdıysa, bir kahve ısmarlayarak desteğini gösterebilirsin. Bu destek, daha fazla içerik üretmem için motive edici olacaktır.

☕ Bana Bir Kahve Ismarla

    Bir yanıt yazın

    10 Ocak 2026

    GTranslate Eklentisinde Dil Değiştirirken Geri Tuşu Sorunu ve JS ile Kalıcı Çözüm

    GTranslate, WordPress sitelerde hızlı ve pratik çok dilli yapı kurmak için sıkça kullanılan bir eklentidir. Ancak eklentinin ücretsiz sürümünde, dil değiştirildikten sonra tarayıcı geri tuşu kullanıldığında […]
    29 Aralık 2025

    Sitenizin Arka Kapısını Kilitleyin: xmlrpc.php Tehlikesi ve Çözümü

    WordPress sitenizi kurdunuz, temanızı seçtiniz ve güvenlik eklentilerinizi yüklediniz. Peki ya sitenizin arka kapısı, yani xmlrpc.php ne durumda? Çoğu site sahibinin varlığından bile haberdar olmadığı, ancak […]