Cevaplar
-
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
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ım11 yıl önce yazılmış -
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.11 yıl önce yazılmış -
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?11 yıl önce yazılmış -
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.11 yıl önce yazılmış -
Kesali
Token söylediğin şekilde oluşturulabilir.11 yıl önce yazılmış -
sharq
teşekküğr ederim bunu daha geniş araştırabiliceğim bir kaynak biliyormusun yani faydalı birşeyse sistemlerimde kullanayım11 yıl önce yazılmış -
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ış.11 yıl önce yazılmış -
sharq
bazılarıda tarayıcıda sitenin sonunda yazıyor
style.css?v=123456, jquery.js?v=123456
&token=f2tf2t3r23f2f...
bu tarz falan11 yıl önce yazılmış -
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.11 yıl önce yazılmış -
sharq
tmm kardeşim teşekkür ederim peki bu sitil dosyasını önbellekte tutturma işlemini nasıl yapacağız?11 yıl önce yazılmış -
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>11 yıl önce yazılmış -
sharq
bunu nalamı ney yani .htacces dosyasına bunları ekleyince ne olacak ?11 yıl önce yazılmış -
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.11 yıl önce yazılmış -
sharq
anladım sadece .htacces dosyasına bunu ekliyeceğim başka birşey yapmıcam demi?11 yıl önce yazılmış -
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.11 yıl önce yazılmış
-