Hocum https://scotch.io/tutorials/the-anatomy-of-a-json-web-token https://jwt.io/ while (1<2)

Ek olarak ; . Net 'in kendi yaptığı Token'i tavsiye eder misiniz? String Token=Convert. ToBase64String(Guid. NewGuid . ToByteArray ; i Kullansam? Bi sıkıntı çıkarır mı? Byle otomatik bi Token veriyormuş zaten. Net Framework Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

JWT'yi @KrypT dedi, gzden kaçırmışsın herhalde. JWT basitçe şyle: Tokenin içinde ne zaman başladığı, ne zaman geçerli olacağı, ne zaman sonlanacağı bilgilerinin yanı sıra, tokeni kimin tanımladığı, kullanıcı kimliği , nerelerde geçerli olduğu, kullanıcının ne yetkisine sahip olduğu gibi bilgiler içeriyor. İlk kısmın ve ikinci kısmın zeti çıkarılıyor ve birleştirilerek üçüncü kısımda ayrı bir gizli anahtarla kodlanıyor. Tüm bu paketi kullanıcıya yolluyorsun. Sonraki her requestte ise birinci ikinci üçüncü kısımları karşılaştırarak ellenmemiş olduğundan emin oluyorsun. Evet, request ve response headera ek yük bindiriyorsun ve her işlemde tekrar tekrar doğruluyorsun. @KrypT'in verdiği ikinci bağlantıyı takip et. Session kullansan, düşer ya da sunucu ile ilgili bir değişiklikte kaybolur. OpenAuth gibi bir şey kullansan, kullanıcının bilgilerini başka sistemlerle paylaşmış olursun, her requestte kullanıcı adı ve şifre istesen güvenliği tehlikeye atarsın ayrıca vt sorgularını tekrar tekrar çalıştırırsın. Not: SSL kullanmadan her zaman dinlenme riski vardır. Olaylara karışmayın!

Login sistemi çok başını ağrıyorsa framework kullansana. Sadece bi imza..

Hocum https://scotch.io/tutorials/the-anatomy-of-a-json-web-token https://jwt.io/ Hocam burda sanırım keylerin yapım aşaması var kullanım aşaması yok. Mesela bu keyi. Oluşturdum ama her postta ben key alıp servis de decode mi etmem lazım sonra vt de bu adam var mı yok mu bunu ğrenmem gerekmez mi? Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

Hocalarım bu Token login muhabbetini 4 aydır uğraşıp uğraşıp duruyorum ama hep proje saçma sapan yerlere varıyor. Her kullanıcıya değişken bir Token veriyorum ve kullanıcı çıkış yaptığı anda Tokeni siliyorum vt den tekrar giriş yaptığımda farklı bir Token veriyorum ve sadece Tokenli sistem yapıyorum ama biraz saçma duruyor yaptığım iş şu. rneğin vt ye user ekleyeceğim parametere olarak userid, userpw, token şimdi hocalarım her fonksiyon da byle bir token alıyorum. her seferinde byle tektek Token mi isteyeceğim. Birde Token doğru ise veri tabanı işlemleri yaptırıyorum. Buda bana her post da ekstra token vt de mevcut mu gibi bi saçmalık doğruyor. Proje de yavaşlama oluyor haliyle. Siz nasıl yapıyorsunuz? Paylaşır mısınız bizimle de :( birde token değişkenlikleri için ben kullanıcı adını bit e alıp bir bit sola kaydırıp tekrar normal ascii koda dküp zaman falan ekleyerek değişken bir token yaptım. Siz hangi yolları izliyorsunuz? Bit sola kaydırma vs vs gbi işlemlerde benim tokenler çzülebilir mi? Birde kullanıcı girişi var 5. Hata da adama 10 dk ban atıyorum vt de de ban durumu 1 yapıyorum kullanıcı giriş yaptığında süresi doldu ise ve şifre doğru ise giriş yaptırıyorum. Bu girişler çok nemli benim için sağlam kod yazmam gerekiyor artık. Biri yardım etse ğrenci duasını alır vallahi! Android de kullanacağım MhmdAlmz tarafından 18/May/16 11:53 tarihinde düzenlenmiştir Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

@YeniHarman, JWT, manyak bişeymiş kurgulayan iyi kurgulamış aradığım şey sanırım bu 3 parca kod gnder bilgileri içine gm kitap gibi oku. Mantığını kurmak yeterli :) Bilgiler için sana ve @KrypT'a çok teşekkür ederim :) OWASP da takip etsem iyi olacak teşekkürler bilgiler için :) Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

MhmdAlmz bunu yazdı @PcK0 Hocam kullandığınız framework var mı? birde framework'ler de bazen sıkıntı çıkartabiliyor. Nasıl sıkıntı? Uzun süreçte kullanacaksan JWT kullan. Başka çzüm yok. Kullanıcıya tek sefer JW tokeni atarsın, adam çıkış yapana ya da programı kaldırana kadar oturumu geçerli olur. Tokene de cihaza zel id eklersen, başka cihazlardan kullanılmasını engellersin. Ayrıca dağıtık mimariyi kullanabilmen kolaylaşır. O tip şifreleme işlemlerini kullanmanı tavsiye etmem. Şyle bir şey yapabilirsin: kullanıcı adı ile bir benzersiz id'yi birleştirir sonra sha1 gibi bir algoritmayla hashını alırsın. Veritabanına byle limiti 1 olan sorgular yapmaktan çekinme. O arkadaşın işi o: Sen soracaksın, o cevaplayacak. Güvenlik için ise sp'lere ynelebilirsin hatta hatalı kullanıcı girişindeki sayma işlemlerini vs. tamamen vt'de halledebilirsin ki sunucunun zayıf halkası olan web tarafını rahatlatırsın. Performans için nemli olan çoğu zaman vt işlemleri değil de , I/O işlemleri. Kısaca I/O işlemlerini kısmaya bak . Çerezleri işin içine katmadım bile. JWT yi ilk defa duyuyorum şu JWT Yi araştırayım biraz Birde Aslında Telefonun IMEI no ulaşabilirsem birleştiririm. 2. bir id bulayım. bide ben Login oldu Uygulama off durumda kullanıcıyı da off durumuna getirtiyorum. VT Ye çok fazla ekle güncelle sil işlemi oluyor. Bu yüzden belki VT'yi yorarım diye düşündüm. Temiz kod yazma derdindeyim şimdiden alışayım diye. sha1 i araştırmıştım da bi cacık anlamadım. Ben onu bir güzel daha araştırayım yoksa bu Sniff işi yaptığım işi ldürür. Teşekkürler abi yorumların için tekrardan :) Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

Hocam nce kulanıcı adı şifre karşılığında cliente token vereceksin. Clientte bunu rneğin local storage'da saklarsın. Sonra her requestte client mesela bearer auth ile tokenı header olarak servera yollar. Serverda verficiation işleminden sonra reqesti cevaplar. yle acayip bir yavaşlama yapacağını sanmıyorum? Her requestte veritabanından kontrol etmene gerek yok hocam. Girişte bir kere kontrol edip token oluşturduktan sonra token payload içerisinde user id gibi bilgileri saklayabilirsin. Dışarıdan buna müdahale edildiğinde token mismatch olacağından kullanıcı herhangi bir işlem yapamaz zaten. Edit: Bu arada bu temel bir sistem. User verification sadece token signature ile sağlanıyor o yüzden bu şekilde rneğin logout işlemi yapamazsın. İşte bu noktada vt devreye giriyor. Oluşturulan tokenları redis ya da mongo gibi bir veritabanında saklarsan hem logout gibi fonksiyonları sağlayabilir, hem de bir katman daha güvenlik eklemiş olursun. Tabi bunu yaparsan server stateless olmaktan çıkar ve JWT'nin kullanım amacına tamamen ters düşersin. krypt tarafından 18/May/16 13:25 tarihinde düzenlenmiştir while (1<2)

@KrypT hocam o kadar büyü bi proje değil mongo'luk falan işim yok :/ ama dediklerinizi dikkate alayım. @PcK0 Hocam kullandığınız framework var mı? birde framework'ler de bazen sıkıntı çıkartabiliyor. Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

@MhmdAlmz. NET'in ürettiği token sanıyorum php'nin yolladığı PHPSESSIONID ile aynı. Hayır bu JWT değil. Amaç token'in içinde sonradan ihtiyaç duyacağımız bilgileri saklamak. Tokeni kastırmaya, şifrelemeye gerek yok, sadece bizim oluşturduğumuz orijinal token olduğunu doğrulasak yeterli. Onu da tüm token içeriğini toparlayıp, bir gizli anahtar metniyle birlikte zetini çıkartarak sağlıyoruz. Tokende bizim belirttiğimizden bir bit bile farklı olsa zet değişecek ve biz tokenin mıncıklanmış olduğunu greceğiz. Access Denied olayı yani:) Not: SHA1, MD5 şifreleme algoritmaları değil, hash yani benzersiz zet algoritmaları. Verilen ifadenin zetini çıkarmaya yarar ve geri dnüşü yoktur . Burada anahtar szcük benzersiz olması. Kısaca AAA ile AAB temiz metinleri çok farklı zetler çıkarır. MD5 ile benzersizlik garanti değil. Çoğu durumda yeterli fakat çakışan zetler var. Not 2: E-ticaret demişsin. E-ticaretin kuralları var ve jwt kullanmanın hiçbir anlamı yok. Uzun süreli oturumlara gerek yok çünkü. Ayrıca 3d secure kullanırsan, kullanıcının kart bilgilerini saklamazsan , e-posta, telefon doğrulaması yaparsan, SSL'siz bir nane bile bırakmazsan, sunucu sağlam bir firmaya emanetse, OWASP makalelerini yalayıp yutarsan başka bir şeye gerek kalmaz. İşin içine para girdi mi XSS de çok nemli bir açıktır. Bazı sitelerimde xss açığı olmasına rağmen risk faktrü düşük olduğu için düzeltmiyorum çünkü maliyetli. Kısaca bu oturum doğrulama için sana klasik session yolu grünüyor diyebilirim. Nette "how to implement secure login system" gibi aramalar yaparsan çok daha güzel yazılara ulaşabilirsin. Bu arada güvenli bir şey yapmak için hosting paketi vs satın alınmaz:) rneğin ziyaretçi oturumunda kullandığım kod parçası neden vt üzerinde yazma hakkına sahip olsun? Cloudflare gibi reverse proxy'ye ya da sağlam bir firewall'a ihtiyacın olacak. Not 3: Güvenliği nasıl mı sağlayacağım? Elden geçirilmiş yaygın ve okuyunca çzebildiğim kütüphaneleri kullanıp, güncellemeleri takip ederek. Anlayamadığım kodu -eğer çok lazım/acele/benim beceremeyeceğim değilse- kullanmaktan kaçınıyorum. Olaylara karışmayın!

@YeniHarman, Evet abi Son cümlesine pek dikkat etmemişim tekrar okudum. Bakayım o dediğinize SSL siz zaten iş yapmam dinlerler herşeyi. Şu 3 kısımlı token'i çzme yada yapma işlemlerini her seferinde Sunucuda tekrarlayacağımdan boşuna yorarım diye düşündüm servisi ama zaten olması gereken oymuş. Sanırım burda yapılacak nemli işler Tokeni oluşturmak ve Tokenin çzülmesi zor birşey haline getirmek. Şu login işlerini çzsem iyi olur E-Ticaret App'ları başımı yakacak gibi gzüküyor. Iyice kavrayayım. Ekstra şuna da bak dediğin kaynak varmıdır abi? Bu başlı başına iş ya Crypto edilebilir bi token olsa bile sıkıntı yaratacaktır. Birde abi Tokenin sürekli değişmesi skıntı çıkarır mı? oraya değişken bilgiler koysam Her off durumda da Tokeni Silsem VT den sürekli değişken token olması sanırım EnCrypt edilmesini zorlaştırır. Sha1 MD5'in bi gelişmiş versiyonu sanırım MD5 konusunda bi kaç bilgim vardı da Sha1 'i yeni duyuyorum araştırırken baktım da ikisi de şifreleme algoritması falan Crypt işlemlerine giriyor... Ne zor işmiş yazılımcı olmak :D Neyse saçlarımız dkülsün artık yapacak bişey yok. :) En son login sistemini yaptıktan sonra bunu nasıl test edebilirim güvenirliğini? Bu konuda da bilgi alabilir miyim. Birde bu Web programlamada 45 sayfa mı ne checklist varmış hepsini yapınca sağlam site oluyormuş E-Ticaret siteleri onlara gre yapılıyor muş. Bunun Android versiyonu var mıdır varsa adı nedir? Bilgin var mı abi? Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu nünden daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? yle ise, sakın yetime kahretme ! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!

@PcK0 Hocam kullandığınız framework var mı? birde framework'ler de bazen sıkıntı çıkartabiliyor. Nasıl sıkıntı? Uzun süreçte kullanacaksan JWT kullan. Başka çzüm yok. Kullanıcıya tek sefer JW tokeni atarsın, adam çıkış yapana ya da programı kaldırana kadar oturumu geçerli olur. Tokene de cihaza zel id eklersen, başka cihazlardan kullanılmasını engellersin. Ayrıca dağıtık mimariyi kullanabilmen kolaylaşır. O tip şifreleme işlemlerini kullanmanı tavsiye etmem. Şyle bir şey yapabilirsin: kullanıcı adı ile bir benzersiz id'yi birleştirir sonra sha1 gibi bir algoritmayla hashını alırsın. Veritabanına byle limiti 1 olan sorgular yapmaktan çekinme. O arkadaşın işi o: Sen soracaksın, o cevaplayacak. Güvenlik için ise sp'lere ynelebilirsin hatta hatalı kullanıcı girişindeki sayma işlemlerini vs. tamamen vt'de halledebilirsin ki sunucunun zayıf halkası olan web tarafını rahatlatırsın. Performans için nemli olan çoğu zaman vt işlemleri değil de , I/O işlemleri. Kısaca I/O işlemlerini kısmaya bak . Çerezleri işin içine katmadım bile. Olaylara karışmayın!