Neden PHP'nin yerleşik oturum yönetimini kullanmak değil mi?

5 Cevap php

Şu anda var mı - ya da hiç olmamıştır - PHP'nin herhangi bir ciddi ya da önemli bir sorun yerleşik oturum işleme?

Yani, her zaman benim ve projeler için çalıştı.

Ama orada bazı codebases ve çerçeveler bir özel işleyici kullanmak gibi görüyorum. Bu tekerleği yeniden icat mı? Ya da bazı kusurları iyileştirilmesi? Ne kusurlar?

5 Cevap

Is there currently - or has there ever been - any serious or significant problem with PHP's built-in session handling?

Yerleşik işleyicileri ile hayır problem. Eski oturum dosyaların erişim ve silme de uygulanmaktadır.

Is this reinventing the wheel? Or improving on some flaws? What flaws?

Dosya bazlı oturum yönetimi, tek bir sunucu web siteleri için çalışıyor. Uygulamaları (ölçeklendirilebilmesi) birden çok sunucu üzerinde çalıştırmak gerektiğinde sorunlar ortaya çıkabilir. Bir master veritabanı birden çok sunucu arasında oturum bilgilerini saklamak ve sağlamak için kullanılabilir. Bir uygulama ölçeklendirilebilmesi olduğunda bu işler daha kolay yapabilirsiniz. Özel oturum işleyicileri veritabanı ile etkileşim için kullanılabilir.

Pros and cons of PHP's built-in session handler

  1. Artıları:

    1. Kolay (sadece session_start() kullanmak ve bitirdiniz) kullanmak için
    2. Mevcut OTB.
  2. Eksileri:

    1. Kullanıcıyı tanımak için yalnızca {[(0)}] (ya da SID, SESSIONID, vb) tanımlama kullanır. Bu çok değil, ve bu bilgileri kolayca XSS saldırıları ya da buna benzer bir şey kullanarak çalınmış olabilir.
    2. Çoğu durumda (genellikle Who's online? özellikleri kullanılan) aktif oturumların toplam sayısını almak gibi şeyler yapmak mümkün değildir

Pros and cons of your own session handler

  1. Artıları:

    1. Eğer çalışmak istediğiniz şekilde çalışır
    2. Eğer kullanıcıları tanımak nasıl üzerinde tam kontrol. Sen oturumu çalmak imkansız (ya da en azından çok zor bir görev) emin olmak için çerez, IP adresi, tarayıcı imza kullanabilirsiniz.
    3. Siz oturum verileri saklandığı yeri seçti (veritabanı / dosya sistemi)
    4. Siz bir bütün olarak oturum mekanizması üzerinde kontrolü var
  2. Eksileri:

    1. Sen böyle bir işleyicisi oluşturmak için birkaç dakika harcamak zorunda

Oturum davranışını geçersiz en önemli avantajlarından biri, bir veritabanına oturum bilgilerini kalıcı mümkün ediliyor. Bu kullanıcı doğrulama ile kombine edildiğinde güçlü bir araç olabilir.

Gerçekten olanakları yepyeni bir dizi açılır:

  • Site yöneticileri için oturum yönetim araçlarını kurmak
  • Bir kullanıcının oturum verilerinin denetim izi.
  • Kullanıcıların hesap kilitlemek ve kolayca aktif oturumları öldürmek yeteneği
  • vb

Kendi oturum işleyicileri rulo için bir neden diğer uygulamalar (= Java / CF / ne olursa olsun uygulama oturumların doğrulama) ile tek oturum açma sistemi, ya da oturum paylaşımı uygulama olacaktır.

Oturumlar yalnızca hiçbir belli bir boyuta kadar olabilir?