Sistem Dokümantasyonu
KAREBLOK.TC CMS, piyasadaki standart "web scriptlerinin" çok ötesinde, Minecraft sunucunuzla %100 entegre çalışan devasa bir ağdır. Veritabanınız (MySQL), eklentileriniz (AuthMe, LuckPerms) ve ödeme yöntemleriniz (PayTR) sıfır gecikmeli algoritmalarla birbirine bağlanmıştır.
Bu Kılavuz Hakkında
Burada sistemin arka planda nasıl işlediğini, kurulumun sıfırdan nasıl yapılacağını ve API sistemlerini en ince ayrıntısına kadar öğrenebilirsiniz. Hiç kimseye soru sormadan tüm sistemi yönetebilmeniz için tasarlanmıştır.
Sunucu Hazırlığı ve Veritabanı (cPanel/Plesk)
Kuruluma başlamadan önce dosyalarınızı hostinginize yüklemeli ve bir veritabanı oluşturmalısınız.
-
Dosyaları Yükleme İndirdiğiniz .zip dosyasının içindeki tüm dosyaları (index.php, includes klasörü vb.) hostinginizin
public_htmlveyahtdocsdizinine aktarın.
Veritabanı Bilgilerimi Nereden Bulacağım?
Kurulum sihirbazı sizden "Veritabanı Adı, Kullanıcı Adı ve Şifre" isteyecektir. Bunları hosting kontrol panelinizden oluşturmalısınız:
- cPanel Kullanıcıları: Ana ekranda "MySQL® Veritabanları" (MySQL Databases) bölümüne girin. Yeni bir veritabanı adı yazıp oluşturun. Aşağı inerek yeni bir Kullanıcı (User) oluşturun ve şifre belirleyin. Son olarak en alttaki kısımdan oluşturduğunuz Kullanıcıyı, oluşturduğunuz Veritabanına "Tüm Yetkilerle" (All Privileges) ekleyin.
- Plesk Kullanıcıları: Sol menüden "Veritabanları" (Databases) sekmesine girip "Veritabanı Ekle" butonuna basın. İsim, kullanıcı adı ve şifreyi aynı ekranda belirleyip kaydedin.
- Host: Eğer veritabanı ile web siteniz aynı firmada/sunucudaysa Host kısmı her zaman
localhostolarak kalmalıdır.
Adım Adım Akıllı Kurulum (Installer)
Dosyaları yükledikten sonra web sitenizin adresine (Örn: siteniz.com) giriş yaptığınızda kurulum sihirbazı otomatik başlayacaktır.
-
Adım 1: Gereksinimler (PHP 7.4+ & PDO) Sistemin güvenli çalışabilmesi için minimum PHP 7.4, PDO kütüphanesi ve ana dizine yazma izni (CHMOD 777) kontrol edilir.
-
Adım 2: Veritabanı İçe Aktarımı Bir önceki adımda cPanel'den aldığınız veritabanı bilgilerini girdiğinizde, sistem arka planda 32 tablodan oluşan MINECRAFT_CMS_MASTER.sql dosyasını okur ve
config.phpdosyasını otomatik oluşturur. -
Adım 3-5: Kurucu & Güvenlik Kilidi Admin şifresi PASSWORD_DEFAULT ile şifrelenip veritabanına eklenir. İşlem bitince ana dizinde .installed isimli kilit dosyası oluşturulur. Bu dosya silinmedikçe kurulum ekranına veya SQL ayarlarına dışarıdan bir daha asla ulaşılamaz.
Veritabanı (PDO Core) Güvenliği
Database.php dosyamız, tüm SQL işlemlerini güvence altına alan bir Singleton PDO Wrapper sistemidir.
Tüm sorgular prepare() ve execute() metodlarından geçirilir. Dışarıdan gelen hiçbir veri SQL Injection zafiyetine yol açamaz.
// Örnek Güvenli Veri Çekimi (Database.php üzerinden)
$user = $db->fetch("SELECT * FROM `users` WHERE id = ?", [$userId]);
// Örnek Güvenli Veri Ekleme
$db->insert('log_table', [
'user_id' => $userId,
'action' => 'login_success'
]);
Güvenlik, Rate Limiting ve GeoIP
Sistemin güvenliği AuthHelpers.php ve init.php üzerinden yönetilir.
-
Anti-XSS & CSRF: Sisteme giren her POST verisi (form) özel CSRF token'ı ile doğrulanır. Ekrana basılan tüm metinler
htmlspecialchars()ile filtrelenir. -
Rate Limiting (Brute Force Koruması): Bir IP adresi 15 dakika içinde ardışık 5 başarısız giriş denemesi yaparsa, sistem hesabı ve o IP'yi korumaya alır.
-
GeoIP Lokasyon Tespiti: Giriş logları (login_logs) cURL aracılığıyla
ip-api.com'a bağlanarak IP'nin hangi ülkeden ve şehirden olduğunu veritabanına kaydeder.
Özel SMTP Motoru (Mail.php)
Ağır kütüphaneler (PHPMailer vb.) yerine, doğrudan TCP soketleriyle haberleşen ultra hafif, özel yazım bir SMTP Client (Mail.php) kullanıyoruz. Şifre sıfırlama veya ticket bildirim mailleri anında iletilir.
// SMTP Bağlantısı ve Raw Gönderim Mantığı
$socket = fsockopen($this->host, $this->port);
fputs($socket, "EHLO " . $this->host . "\r\n");
fputs($socket, "AUTH LOGIN\r\n");
fputs($socket, base64_encode($this->username) . "\r\n");
AuthMe Kriptografisi
Sitemiz üzerinden kayıt olan bir oyuncunun şifresi düz metin veya sıradan bir Hash ile saklanmaz. AuthMe.php sayesinde doğrudan oyunun kullandığı Çift Tuzlamalı SHA256 algoritması kullanılır.
Şifre formatı: $SHA$rastgeleTuz$gercekSifreninHashi. Oyuncu siteden şifresini değiştirdiği saniye, oyuna yeni şifresiyle girebilir.
LuckPerms Otomasyonu
LuckPermsSync.php sınıfımız, MySQL tablosundaki oyuncunun birincil grubunu (Örn: VIP+) çeker. Eğer o yetki sitenin veritabanında yoksa, otomatik oluşturup rengi ve ikonuyla birlikte oyuncunun web profiline tanımlar.
TCP RCON Protokolü (0ms Teslimat)
Sistemin en güçlü yanıdır. Bir oyuncu siteden ürün aldığında, onay beklemeden sistem MinecraftRcon.php üzerinden sunucuya Source RCON Protokolü (Type 2/3 Paketleri) ile sızarak eşyayı verir.
// Gerçek RCON Socket Bağlantısı ve Paket Gönderimi
$rcon = new MinecraftRcon('play.kareblok.tc', 25575, 'gizli_rcon_sifresi');
if ($rcon->connect()) {
$rcon->sendCommand("give BaranMRJ diamond 64");
$rcon->sendCommand("broadcast &dKAREBLOK CMS: &fSipariş teslim edildi!");
}
WebSender & Soket Güvenliği
Eğer sunucunuz daha eski bir altyapıdaysa, RCON yerine MinecraftWebSender.php devreye girer. RCON'dan farkı; şifreyi ham göndermek yerine MD5 Hash formatında göndererek ağ üzerindeki (network sniffing) saldırılardan korunmanızı sağlamasıdır.
Transfer API ve Sunucu İstihbaratı
MinecraftQuery (Ping): server-status.php ve MinecraftQuery.php, sunucunuzun online bilgisini, oyuncu sayısını ve MOTD'sini 60 saniyelik cache (önbellek) kullanarak siteye çeker, bu sayede sunucu ping saldırılarına (DDoS) maruz kalmaz.
Transfer API: transfer.php bir REST API'dir. Sunucu içindeki bir eklenti (Plugin), siteye Bearer Token (Authorization Header) ile GET/POST istekleri atarak bekleyen komutları çekebilir veya güncel istatistiklerini JSON formatında siteye yedekleyebilir.
Bento Market ve Kupon Algoritması
Mağaza (market.php ve sepet.php) gelişmiş bir sepet mantığıyla çalışır.
- Ayrışım: Fiziksel eşyalar (Kasa Anahtarı) ve Süreli Rütbeler ayrı mantıklarla işlenir.
- Kupon Sistemi: kuponlarim.php dosyası, sepet aşamasında oyuncunun girdiği kodun Geçerlilik Tarihi (valid_until) ve Maksimum Kullanım Limitini (max_uses) doğrular. Limit aşılmışsa indirimi reddeder.
PayTR & Shopier (IPN Webhook)
Finansal döngünün otomatikleştiği yerdir. Yönetici onayına veya dekonta ihtiyaç yoktur.
Güvenlik Uyarısı (Callback)
Oyuncu kredi kartı ile ödeme yaptığında, PayTR / Shopier sunucuları arka planda sitenizdeki api/payment-callback.php dosyasına bir POST isteği atar. Sistem bu isteğin içindeki HASH şifresini sizin Merchant Key'inizle doğrular. Eğer Hash tutarsa oyuncunun bakiyesi saniyesinde veritabanında yükseltilir. İzinsiz yapılan istekler veya tutarı değiştirilmiş istekler anında engellenir.
Gelişmiş Ticket Sistemi
Kullanıcıların destek-talebi-olustur.php üzerinden açtığı talepler, admin paneline düşer.
- Kategori & Öncelik: Sorunlar Teknik, Oyun İçi vb. kategorize edilir. Düşük, Orta, Acil olarak öncelik verilebilir.
- Kanıt Yükleme Limitleri: Sunucunun dolmaması için kurallar belirlenmiştir. Maksimum 3 resim (Max 5MB) ve 1 video (Max 20MB) yüklenebilir.
Dinamik Sayfalar ve Tema Motoru
Settings.php modülü veritabanından çektiği tema ayarlarını performans için RAM'de (Array) önbelleğe alır.
theme.php üzerinden sitenin Ana Rengi (Örn: Turkuaz) ve İkincil Rengi değiştirildiğinde sitenin CSS değişkenleri anlık güncellenir. Ayrıca SSS (Sıkça Sorulan Sorular) ve kurallar sayfası admin panelinden Summernote (Gelişmiş Metin Editörü) ile güncellenir.