- Mesaj
- 15
- Beğeni
- 9
- Puan
- 40
- Ticaret Puanı
- 0
- Session Hardening: HTTPOnly, Secure ve SameSite çerezleri ile oturum çalınması imkansız hale getirilmiştir.
- CSRF Protection: Token tabanlı koruma sayesinde tüm formlar sahte isteklere karşı güvendedir.
- IDOR Protection: URL'lerdeki ID'ler AES-128-CBC ile şifrelenir, başkasının verisine erişim engellenir.
- Browser Fingerprinting: Kullanıcının tarayıcısı değiştiğinde veya başka bir oturum açtığında sistem bunu algılar ve oturumu kapatır.
- SQL Injection: %100 Prepared Statements yapısı ile veritabanı saldırılarına karşı tam koruma.
- XSS Protection: Sadece HTML değil, JS ve URL alanları için de özel htmlspecialchars() escaping yapısı.
- Anti-Flood: Seri istekleri engelleyen Rate Limiting (2 saniye kuralı).
- Session Fixation: Oturum güvenliği için her 5 dakikada bir Session ID otomatik değişir.
- Advanced Headers: X-Frame-Options,
CSP gibi güvenlik başlıkları ile Clickjacking ve XSS engellenir. - Content Security Policy (CSP): eval() fonksiyonu engelli, dış kaynaklar beyaz liste (whitelist) ile sınırlandırılmıştır.
- Input Sanitization: Gelen tüm veriler strip_tags, trim ve filtrelerden geçirilir.
- CAPTCHA: Otomatik bot girişlerini engellemek için güvenlik doğrulaması mevcuttur.
SQL Taraflı Kilitleme (Transaction & Locking) Nedir?
Sizin sisteminizde "Double Spending" (Çift Harcama) veya "Item Duplication" (Eşya Kopyalama) olmaması için Row-Level Locking (Satır Bazlı Kilitleme) kullanıyoruz.
İşte sistemin nasıl çalıştığının teknik mantığı:
1.
Kodlarımızda şu satırı sıkça görüyorsunuz:php
$db->prepare("SELECT * FROM web_auctions WHERE id=? FOR UPDATE");
Bu komut veritabanına şunu söyler: "Bu satırı okuyorum ama işlemim bitene kadar KİMSE bu satıra dokunamasın, okuyamasın ve güncelleyemesin."
Örnek Senaryo (Korumasız Olsa Ne Olurdu?):
- Ahmet sayfayı yeniledi, ihale bitti mi diye sordu. (Sistem: Evet bitti, parayı ver)
- Mehmet (veya Ahmet'in yan sekmesi) milisaniyeler sonra aynı soruyu sordu. (Sistem: Evet bitti, parayı ver)
- Eğer kilit olmasaydı, satıcıya iki kere para giderdi.
- Transaction Başlar(
beginTransaction
). - Sistem satırı kilitler (
FOR UPDATE
). - Diğer tüm istekler bu işlem bitene kadar beklemeye alınır (Queue).
- Para verilir, durum güncellenir.
- Transaction Biter(
commit
). - Sıradaki istek işleme girer, bakar ki durum artık "active" değil "waiting_claim". İşlemi iptal eder.
2. Güvenlik Katmanları
- Atomicity (Bütünlük):
beginTransaction
ve
rollback
sayesinde, işlemin yarısı gerçekleşip yarısı gerçekleşmeme durumu olmaz. Ya parayı alır ve eşyayı verir, ya da hiçbir şey yapmaz. Elektrik kesilse bile veri bozulmaz. - Prepared Statements: SQL Injection'ı %100 engeller. Kullanıcı
DROP TABLE
gibi kodlar gönderse bile veritabanı bunu sadece düz yazı olarak algılar. - Isolation: Her işlem birbirinden izole çalışır. Bir kullanıcının bakiyesi güncellenirken diğer kullanıcı o anki bakiyeyi yanlış göremez.
2.
- Otomatik İşleme: Kullanıcılar açık arttırma sayfasında olmasa bile, siteye giren herhangi bir ziyaretçi sayesinde süresi dolan açık arttırma anında sonuçlanır.
- Anlık Ödeme: İhale bittiği saniye, satıcının parası hesabına yatar ve kazanan alıcıya bildirim gider.
- Canlı Teklif: Kullanıcılar saniyeler içinde teklif verip rekabete katılabilir.
3.
- Akıllı Arama: Eşya adı, efsun ismine göre detaylı arama.
- Vitrin Sistemi: Oyuncular belirli bir ücret karşılığında ilanlarını öne çıkarabilir (Highlighted Listings).
- Detaylı Eşya Görüntüleme: Eşyaların taşları, efsunları ve + basma dereceleri oyun içindeki gibi birebir gösterilir.
- Otomatik Resim Eşleştirme: Veritabanında resmi olmayan eşyalar (örn. +3 +4 taşlar) için akıllı algoritma en uygun resmi otomatik bulur.
4.
- Detaylı Geçmiş: Alım, Satım ve Hizmet (Vitrin ücretleri vb.) işlemleri ayrı sekmelerde, net bir şekilde listelenir.
- Türkçe Karakter Desteği: Sistem genelinde özel kodlanmış karakter düzeltme motoru ile "İ", "Ş", "Ğ" gibi harfler asla bozulmaz.
- Kolay İlan Yönetimi: Tek tıkla ilanı yayından kaldırma, fiyat güncelleme veya satılan eşyayı teslim alma.
5.
- Satıcıya Mesaj: Beğenilen bir eşya için direkt panel üzerinden satıcıya teklif mesajı atılabilir.
- Güvenli Mesajlaşma: Mesaj URL'leri bile şifrelenerek, kullanıcı gizliliği %100 korunur.
- Hesap İsimleri: İlk 3 harf gerisi sansürlü gösterilecek şekilde ayarlanmıştır.
- Anlık Kur Hesaplama: Admin panelinden belirlenen kur üzerinden (Örn: 100 EP = 1 TL) otomatik hesaplama.
- Güvenli Talep: Bakiye, talep oluşturulduğu anda hesaptan düşülür (Double Spending Önlemi).
- IBAN Doğrulama: Kullanıcılar sadece kendi adlarına ait IBAN ile çekim yapabilir.
- İşlem Geçmişi: Kullanıcılar taleplerinin durumunu (Bekliyor, Onaylandı, Red) anlık takip edebilir.
6. ADMİN PANEL
Sistemi tam kontrol altına almanızı sağlayan, detaylı yönetim merkezi.- Dashboard (Genel Bakış): Günlük ciro, aktif ilanlar, bekleyen ödemeler ve son işlemleri tek ekranda görün.
- İhale Yönetimi: Sorunlu ihaleleri tek tıkla iptal edip eşyayı sahibine iade etme.
- Pazar Düzenleme: İlanların fiyatını güncelleme, vitrine ekleme veya yayından kaldırma.
- Log Kayıtları: Kim, kime, neyi, kaça sattı? Tüm ticaret geçmişi saniyesi saniyesine kayıt altında.
- Ödeme Talepleri: Kullanıcıların bakiye bozdurma isteklerini tek tıkla Onaylama veya Reddetme Red edilen bakiye Hesaba iade edilir çekim onaylanırsa EP hesaptan silinir
Teknik Altyapı
- Backend: Saf PHP (Yüksek Performans, Framework şişkinliği yok)
- Frontend: TailwindCSS (Modern, Responsive Tasarım)
- Database: MySQL / MariaDB (PDO Entegrasyonu)
- JS Library: jQuery + SweetAlert2 (Akıcı Animasyonlar)
28937 eklentisini görüntüle
Linkleri görebilmek için
giriş yap veya kayıt ol.
TIKLA GİT
Son düzenleme:
satıcının bu itemi geri alması imkansız Farklı tarayıcılarda aynı hesap üzerinden işlemler için ; user_id LOCKED var mı ? buda gelecek güncellemede gelecektir. websitesine kurulum yaptığımda özelden bilgi vereceğim php 8 sürümünü kullanıyorum yorumunuz için teşekkürler bazı güvenlik kısımlarını farkettiniz en yakın zamanda güncelleme ile konuyu güncelleyeceğim inşallah test sitesinide yayına eklerim ozaman