Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

PHP UZMAN SORUSU

Merhaba arkadaşlar ilgilenen arkadaş warsa opencart diye bi sistem war bunda token falan war nedir bu token ler neye yarar bilen arkadaşlar yardım ederse sewinirim.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • Kesali adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    208 cevap - 2 soru
    Opencart token ile bağlantısını pek kuramadım ama php de token nedir diye sorarsan
    Token bir nevi anahtar gibi birşey jeton demek ama örnekle açıklayayım.

    Mesela bir formdan veri geliyor. Bu formun güvenli olup olmadığını anlamak için token kullanırsın. Aşağıdaki örnekte bir token oluşturduk o tokeni formu gizli değer olarak ekledik.

    $token = md5('buraya token koydum');
    $_SESSION['token'] = $token; //tokenımızı yaptık session olarak belirledik.
    
    // Şimdi inputları oluşturalım
    
    <input type="text" name="deneme"  />
    <input name="token" type="hidden" id="textfield2" value="<?php echo $_SESSION['token']; ?>" /> //buraya gizli olarak açtığımız inputa token değeri gelicek
    
    


    Geri kalan iş oluşturduğumuz token değeri ile formdan gelen hidden token değeri karşılaştırmak. Eğer token doğru işe formu işleme al hatalıysa tekrar denettir. Tabi her bir form için farklı token oluşturmanız lazım.
    • sharq adlı üyenin fotoğrafı sharq
      anladım ama bunun kullanış amacı nedir yani bi kullanıcı kayıtr yada giriş yada iletişim forumnda kullansak ne olur kullanmasak ne olur birde buraya token koydum demişşin ya oraya kafadan bi deyermi gireceğim yani sallayacağım yoksa farklımı ??
      birde opencard'ın admin panelinde formlarda dediğin gibi token war öle kontrol ettrmişler ama amcını pek anlayamadım
      10 yıl önce yazılmış
    • Kesali adlı üyenin fotoğrafı Kesali
      Token tek taraflı anahtar gibi birşey örnek verdiğim gibi olcak diye birşey yok. Kendine göre token oluşturabilirsin. Olayın kilit noktası her bir form için benzersiz token oluşturman vede form submit edildikten sonra oluşturduğun token ile formdan gelen tokeni karşılaştırmak.

      Neden kullanılır tabiki güvenlik vede formun güvenilir kaynaklardan geldiğine emin olmak için.
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      anladım curl dan falan form doldurumunda falan kullanılmaz peki tokenlkerimizi nasl oluşturabiliriz md5(rand(0,999999)); böle rasgelemi oluşturacağız?
      10 yıl önce yazılmış
    • Kesali adlı üyenin fotoğrafı Kesali
      Tabiki token o an için kullanılacağı için curl ile dışardan gelen formlarıda kabul etmez. Nasıl her kapının anahtarı varsa token uymadığı sürece o kilidi açmaz. mantık bu.
      10 yıl önce yazılmış
    • Kesali adlı üyenin fotoğrafı Kesali
      Token söylediğin şekilde oluşturulabilir.
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      teşekküğr ederim bunu daha geniş araştırabiliceğim bir kaynak biliyormusun yani faydalı birşeyse sistemlerimde kullanayım
      10 yıl önce yazılmış
    • Kesali adlı üyenin fotoğrafı Kesali
      Tam kaynak bilmiyorum google'a sormak lazım. Yalnız çok karışık bir konu değilki random bir token oluşturup formun içinde hidden inputa koycaksın. sonra formu işlerken elindeki tokenle formdan geleni karşılaştıracaksın. Aynı işe formu kabul et hatalıysa kabul etme. md5(rand(0,999)); bu şekilde token üretebilirsiniz token üretme şekli size kalmış.
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      bazılarıda tarayıcıda sitenin sonunda yazıyor

      style.css?v=123456, jquery.js?v=123456

      &token=f2tf2t3r23f2f...

      bu tarz falan
      10 yıl önce yazılmış
    • Kesali adlı üyenin fotoğrafı Kesali
      Benim bildiğim style.css?v=123456 gibi kullanım şekli browserın önbellek te tutmasıyla ilgili.

      &token=1231241 Bu ise yine aynı mantık o token sadece o anlık geçerli olacağı için bir başkası o linki kopyalasa bile çalışmaz.

      Mesela bir tane ödeme formu gerçekleştirdiniz. Linki güvenli saymak için token üretiyorsunuz. O token o linke o anlık geçerli olacağı için bir başkası linki kopyalasa daki yeniden bir token üreteceğiniz için geçerli kabul etmez.Hatta ödemeyi gerçekleştirecek kişi browserı refresh etse yeniden token alacağı için iki kere ödeme yapmış olmaz.

      Genel mantık hep aynı nasıl kullanırsan kullan. Token üret, bu tokeni kullanıcıya gönder, kullanıcıdan gelen tokeni elinde tokenle karşılaştır.
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      tmm kardeşim teşekkür ederim peki bu sitil dosyasını önbellekte tutturma işlemini nasıl yapacağız?
      10 yıl önce yazılmış
    • Kesali adlı üyenin fotoğrafı Kesali
      Web sunucuna bazı header lar göndermen yeterli. Apache için aşağıdaki kodları .htaacces dosyana koyman yeterli.


      Header unset Pragma
      FileETag None
      Header unset ETag

      # cache images/pdf docs for 10 days
      <FilesMatch "\.(ico|pdf|jpg|jpeg|png|gif)$">
      Header set Cache-Control "max-age=864000, public, must-revalidate"
      Header unset Last-Modified
      </FilesMatch>

      # cache html/htm/xml/txt diles for 2 days
      <FilesMatch "\.(html|htm|xml|txt|xsl)$">
      Header set Cache-Control "max-age=7200, must-revalidate"
      </FilesMatch>
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      bunu nalamı ney yani .htacces dosyasına bunları ekleyince ne olacak ?
      10 yıl önce yazılmış
    • Kesali adlı üyenin fotoğrafı Kesali
      Web sunucun her bir css html jpg dosyası için ekstra header gönderecek. Yani dosyaları senden çekmek yerine trayıcının elinde bulunan daha önceden indirilmiş kopyaları çekecek.

      Bant yükünü düşürür. Siten hızlanır.
      10 yıl önce yazılmış
    • sharq adlı üyenin fotoğrafı sharq
      anladım sadece .htacces dosyasına bunu ekliyeceğim başka birşey yapmıcam demi?
      10 yıl önce yazılmış
    • Kesali adlı üyenin fotoğrafı Kesali
      Denemen lazım ben kendi serverlarımda bu tip modifikasyonları öne tanımlı ekliyorum ama işleyiş bu tarayıcıya header olarak cache tutulacak dosyaları ve süresini göndermen lazım.
      10 yıl önce yazılmış