Api Key Mantığı

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    trnight
    trnight's avatar
    Kayıt Tarihi: 21/Ocak/2013
    Erkek

    Merhaba müritler. Geliştirdiğim bir api var basitce veritabanı işlemleri yapmaya falan yarıyor. Ben bu apiyi karşı tarafa vereceğim o da uygulamasına gömecek kullanıcı o uygulamayı kullanırken benim apime istek yapacak. Bu kısımda bu uygulamaya özgü bir key yapmak istiyorum. Kullandığımız apilerdeki key mantığı gibi. İstediğim de limit koyabileceğim v.s. şekilde. Şu anki apiler bu işi nasıl yapıyor mantığı nedir. Yani key'i veritabanına kaydedip ordan mı sorguluyor her istek olduğunda, perfonmans olarak düşüşe sebeb olmaz mı bu? Bana bu konunun algoritmasında/mantığında yardımcı olabilir misiniz?


    Bilgi güçtür...
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Genelde token içerisine claim ekleniyor expired date vs yazılıyor. Bu key de db ye girmeden redis vb yapılarda tutuluyor. Sen db de de tutabilirsin. Daha sonra istersen bu keyi silebilir engelleyebilirsin de. 

     

    Jwt.io bakmanı tavsiye ederim 


    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 (ahiret dünyadan) 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 (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    MhmdAlmz bunu yazdı

    Genelde token içerisine claim ekleniyor expired date vs yazılıyor. Bu key de db ye girmeden redis vb yapılarda tutuluyor. Sen db de de tutabilirsin. Daha sonra istersen bu keyi silebilir engelleyebilirsin de. 

     

    Jwt.io bakmanı tavsiye ederim 

    hocam burada token'dan ziyade, API key, secret key kavramlari var. Bunlari redis gibi gecici bir yerde tutmak dogru olmaz. Ayrica bu iki key de degismiyor kullanici revoke etmedikce (eger hakki varsa), yani expired olayi yok.

    hangi dille yapacaksin belirtmemissin.. ama asp.net core icin buraya bakabilirsin

     

    https://www.youtube.com/watch?v=Zo3T_See7iI

     

     

     

    unbalanced tarafından 25/Haz/20 12:39 tarihinde düzenlenmiştir

    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    trnight
    trnight's avatar
    Kayıt Tarihi: 21/Ocak/2013
    Erkek
    unbalanced bunu yazdı
    MhmdAlmz bunu yazdı

    Genelde token içerisine claim ekleniyor expired date vs yazılıyor. Bu key de db ye girmeden redis vb yapılarda tutuluyor. Sen db de de tutabilirsin. Daha sonra istersen bu keyi silebilir engelleyebilirsin de. 

     

    Jwt.io bakmanı tavsiye ederim 

    hocam burada token'dan ziyade, API key, secret key kavramlari var. Bunlari redis gibi gecici bir yerde tutmak dogru olmaz. Ayrica bu iki key de degismiyor kullanici revoke etmedikce (eger hakki varsa), yani expired olayi yok.

    hangi dille yapacaksin belirtmemissin.. ama asp.net core icin buraya bakabilirsin

     

    https://www.youtube.com/watch?v=Zo3T_See7iI

     

     

     

     

    Ben nasıl yapılacağının mantığını bilmediğim için mantığını sormuştum o yüzden dil belirtmedim hocam. PHP kullanacağım.


    Bilgi güçtür...
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    2021 Talihlisi
    TheAvenqer
    TheAvenqer's avatar
    Kayıt Tarihi: 09/Şubat/2014
    Erkek

    auth basic kullanabilirsin hocam

    base64(kullanıcıadı : şifre)

    kullanıcı adı ve şifreyi birleştirip araya : atıp base 64 le şifrelemesini isteyebilirsin


    Bot ve lisans ihtiyaçlarınız için pm atınız.
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    unbalanced bunu yazdı
    MhmdAlmz bunu yazdı

    Genelde token içerisine claim ekleniyor expired date vs yazılıyor. Bu key de db ye girmeden redis vb yapılarda tutuluyor. Sen db de de tutabilirsin. Daha sonra istersen bu keyi silebilir engelleyebilirsin de. 

     

    Jwt.io bakmanı tavsiye ederim 

    hocam burada token'dan ziyade, API key, secret key kavramlari var. Bunlari redis gibi gecici bir yerde tutmak dogru olmaz. Ayrica bu iki key de degismiyor kullanici revoke etmedikce (eger hakki varsa), yani expired olayi yok.

    hangi dille yapacaksin belirtmemissin.. ama asp.net core icin buraya bakabilirsin

    Abi haklısın fakat arkadaşın senin bahsettiğin gibi bir private key yada secret keyden bahsettiğini düşünmüyorum. Auth işleminden bahsettiğini düşündüm. Öyle hissettim yani :D Kavramları karıştırdığını düşünüyorum arkadaş sadece dışarıdaki herkesin apiyi kullanmasını istemiyor bunu da ya private bir key verip config dosyasına koyarsın yada api Auth işlemi yaparsın :/ Ben Api Auth işleminden bahsettim. Private key ele geçirilirse patlar sistem çünkü.


    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 (ahiret dünyadan) 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 (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cukurova
    cukurova's avatar
    Kayıt Tarihi: 21/Aralık/2003
    Erkek

    Selam, bunun bir çok yolu var ama senin yazdığın tam olarak nedir? nasıl çalışıyor? (restful, companent, web service)

    Senin yazdığın apinin dış dünya ile bağlantısı var mı? O zaman işin kolay olur çünkü kontrolu senin serverin yapar ama güvenlik nedeniyle genelde db core bağlantılı api'ler dışarıya izoledir. Anladığım kadarıyla bu api müşteri serverında olacak ve ona ait olacak, zaman ve sorgu limiti yok(?)

    Eğer dış dünya ile iletişimi yoksa; En basitinden DSA veya RSA ile kullanarak, müşteriye özel bilgileri (ip adresi, mac adresi vb...) ile 1 kb.lık bir imza dosyası yaratırsın. Senin api (içinde de public key ile) bu imza doğruluğunu belirli zaman aralıklarında kontrol eder.

    Dahada kolay olanı; müşteri bilgilerini (ip+mac+server adı vb...) bilgileri kullanarak bir hmac SHA2 hash oluştur ve bunu ister txt ister db kaydet. Senin api yine belirli aralıklarla müşteri server bilgilerini alarak aynı hash oluşturup, senin verdiğin hash ile karşılaştırsın.

    Tabii kodlarının native derlenmiş olması lazım. Kodlar ortadaysa normal bir yazılımcı 1 satır kod ekleyerek kontrol fonksiyonunu her zaman true döndürebilecektir.

    Yazarken hazır framework kullandıysan, bunun için hazır kutuphane ve fonksiyonlar %99 framework içerisinde vardır.

     

Toplam Hit: 1253 Toplam Mesaj: 6
api key token