lostyazilim
tr.link

PHP+MYSQL+ID=GÜVENLİK=Id yerine sayı+harflerden oluşan karışık bir kod kullanmak!

19 Mesajlar 4.362 Okunma
lstbozum
tr.link

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)
AzveNet Cevabınız için teşekkür ederim üstadım.

"Yalnız decripto edilebilir(tarafınızdan) herşey herkes tarafındanda edilebilir olur."
Doğrudur.
Ben kendi veri tablomdaki sha+md5 ile şifrelediğim password'leri decode edemiyorum ayrı konu! :)
Sanrım bu metod decripto edilemeyen türden...

"random uniqe değer" => Şu an bu yöntemi kullanıyorum ama (harf+sayı+alt çizgi den oluşan) bu değeri kendim üretiyorum.

Siz yazınca bir an acaba mysql içinde böyle bir seçenek var ve ondan mı bahsediyorsunuz diye düşündüm!?

Teşekkürler tekrar.
AzveNet

kişi bu mesajı beğendi.

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.
wmaraci
reklam

AzveNet AzveNet WM Aracı Kullanıcı
  • Üyelik 13.06.2019
  • Yaş/Cinsiyet 42 / E
  • Meslek Serbest
  • Konum İstanbul Anadolu
  • Ad Soyad C** E**
  • Mesajlar 367
  • Beğeniler 69 / 147
  • Ticaret 0, (%0)
Hayır hayır tam olarak öyle değil üstadım :) yanlış anlaşılmasın. Mesela şifreler için ayroca bir hash değeri daha kaydedip(random) onunla şifreleyin. Sha1 de kırılamaz değil. Yalnızca bunları kırmak için bizlerin elindeki işlem güçleri yeterli değil. Daha doğru cümle "yeterli süremiz yok". Evrimi ispat edebiliriz ama bunun için nasıl hiç birimizin ömrü yetmezse(milyonlarca yıl) bu şifreleri kırmak içinde şimdilik bir kaç 10yıl gerekse bile bu bile fazla. Sonuçta o şifreler değişir genel olarak. Hatta çoğu sistemin bizleri şifremizi 180günde bir (veya başka aralıklar) değiştirme tavsiyesi tam olarak bu yüzdendir. Veriyi şifreli göndermek farklı şey, şifreleyip kaydetmek farklı şey. Biz kaydettiğimiz için maksimum güvenlik önlemleri bunlar olabilir diye düşünüyorum. Ama yeterli işlemci gücü(ki şuan elindeki en güçlü pc ile sanırım sabit basit bir şifreyi 2yılda kırabilir) olsa bile zaman sorunu yüzünden bunu yapması olanaksız olurdu. Yani temelde şifreleme dediğimiz şey hash lemek ile aynı kapıya çıkıyor bizim konumuzda.
O yüzdende inputtan gelen değeri hashleyip db deki değerle karşılaştırıp şifrenin doğru olduğunu teyit ediyoruz. Hatta şifre yenileme sisteminde bir sistem size mevcut sisteminizi gösteriyorsa kriptolamıyordur. Yeni şifre girmenizi istiyorsa şifreliyordur.
Olay konuştukça karışık bi hale gelebilir :)
Yani temelde okan üstadın dedikleri yeterli gelebilir. En azından şimdilik hepimiz için yeterli :)

Edit: şifre kırılamaz dememizdeki kasıt bunun için yeterli süremizin olmaması. Eğer olsaydı ortalık bankaların kredi kartı bilgileriyle ve bizzat bankalardan alınanlarla dolu olurdu. Ama onların decodesini daha yarılamadan kartın kullanım tarihi doluyor :)

Kırılamazdan kasıt süre sorunu. Yeterli sürede herşey kırılır üstadım.
BEYAZMASTER

kişi bu mesajı beğendi.

İmkansız olduğunu düşünürsen hiç birşey başaramazsın.

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)
AzveNet Konunun odağında olmamasına rağmen sağladığınız bu ek katkı için de teşekkür ederim üstadım.

Aydınlandık sayenizde...

An itibari ile;
"Mesela şifreler için ayrıca bir hash değeri daha kaydedip(random) onunla şifrelemek"
Nasıl yapılıyor bilmiyorum, tavsiyeniz doğrultusunda onu da öğrenmek gerek...
AzveNet

kişi bu mesajı beğendi.

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.

AzveNet AzveNet WM Aracı Kullanıcı
  • Üyelik 13.06.2019
  • Yaş/Cinsiyet 42 / E
  • Meslek Serbest
  • Konum İstanbul Anadolu
  • Ad Soyad C** E**
  • Mesajlar 367
  • Beğeniler 69 / 147
  • Ticaret 0, (%0)
Ve şunuda belirteyim bazen gözden kaçabilir, random id belirlediğinizde mecburen db de kontrol için bir sorgu daha yapmak gerekir. 12haneli LN bir randomun çakışması çok zor görünsede başıma geldiği için söylüyorum :) ai number her zaman daha iyidir :)
BEYAZMASTER

kişi bu mesajı beğendi.

İmkansız olduğunu düşünürsen hiç birşey başaramazsın.
wmaraci
wmaraci

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)
AzveNet Teşekkür ederiz üstadım...
AzveNet

kişi bu mesajı beğendi.

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.

HardCoreDeveloper HardCoreDeveloper WM Aracı Kullanıcı
  • Üyelik 29.03.2021
  • Yaş/Cinsiyet 31 / E
  • Meslek yazılımcılık
  • Konum İstanbul Avrupa
  • Ad Soyad D** C**
  • Mesajlar 14
  • Beğeniler 0 / 7
  • Ticaret 0, (%0)
Biraz geç olacak ama,
bu dediğine hash deniliyor. hash i istediğin gibi oluşturabilirsin ama çözülebilir olmaması gerekir. (yoksa id kullan zaten hash kullanmak mantıksız oluyor). Basitce bu şekilde hash oluşturabilirsin:
Örneğin üyeler tablon olsun:
$hash=sha1(md5($email.$password.$time));
üyeler tablondaki hash column a bu değeri aktarırsan her üyenin unique bir hash değeri olacağı için ajax ile gönderdiğin işlemlerde bu hash değerini kullanmalısın.
{
id:5,
isim:'test',
update:1
}
gönderirsen id yi manuel değiştirerek tekrar gönderebilirim ve istediğim üyeyi güncelleyebilirim.
{
hash:'cebfeb35d0f5e95e3ca5dad80b1f4fedba7acf1a',
isim:'test',
update:1
}
olarak gönderirsen kırmam imkansıza yakındır buna uğraşmakla vakit kaybedemem. Bu yüzden diğer üyeler için denemem.

id kullanmaya mecbur değiliz ama bir çok sql komutu (hızlı bir index olduğu için) id ile daha hızlı çalışır. Kritik yerlerde id ve hash kullanmak en mantıklısıdır.
BEYAZMASTER

kişi bu mesajı beğendi.

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)
HardCoreDeveloper Üstadım neden geç olsun...

Hem konu yeni açıdı hem de önemli olan bilginin yeni olması...

Aslında benim kasdettiğim şey hash'den daha basit bir seçenekti;

(uniq_kjhgklk6547hgf5kjh_2547545mj => gibi)

sha1(md5($data["pasdword"];)); => Bunu kullanıyorum sadece.

&

sha1(md5($email.$password.$time)); => Bunu biraz açarsanız sevinirim üstadım.

Bu 3'ünü aralarına nokta koyup yazmak neye sebep oluyor, ne işe yarıyor?

3 parametreyi karıştırıyor mu?

Evet ise sonradan ayıklanması gerekiyor mu? Meden? Ne zaman? Nasıl?

Sanırım gerekmiyor, amaç sadece çözülmesi zor bir kod elde etmek... => mi?

Ayırmak istediğimizi düşünelim: hangi kod ile ayırabiliriz?

Aydınlatırsanız seviniriz üstad...


Katkınız ve yeni bilgiler için teşekkürler...
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.

HardCoreDeveloper HardCoreDeveloper WM Aracı Kullanıcı
  • Üyelik 29.03.2021
  • Yaş/Cinsiyet 31 / E
  • Meslek yazılımcılık
  • Konum İstanbul Avrupa
  • Ad Soyad D** C**
  • Mesajlar 14
  • Beğeniler 0 / 7
  • Ticaret 0, (%0)

BEYAZMASTER adlı üyeden alıntı

HardCoreDeveloper Üstadım neden geç olsun...

Hem konu yeni açıdı hem de önemli olan bilginin yeni olması...

Aslında benim kasdettiğim şey hash'den daha basit bir seçenekti;

(uniq_kjhgklk6547hgf5kjh_2547545mj => gibi)

sha1(md5($data["pasdword"];)); => Bunu kullanıyorum sadece.

&

sha1(md5($email.$password.$time)); => Bunu biraz açarsanız sevinirim üstadım.

Bu 3'ünü aralarına nokta koyup yazmak neye sebep oluyor, ne işe yarıyor?

3 parametreyi karıştırıyor mu?

Evet ise sonradan ayıklanması gerekiyor mu? Meden? Ne zaman? Nasıl?

Sanırım gerekmiyor, amaç sadece çözülmesi zor bir kod elde etmek... => mi?

Ayırmak istediğimizi düşünelim: hangi kod ile ayırabiliriz?

Aydınlatırsanız seviniriz üstad...


Katkınız ve yeni bilgiler için teşekkürler...



sha1(md5($email.$password.$time)); nokta koymak php de birleştirmeye yarar.
$isim="wm";
$soyisim"aracı"; ise echo $isim.$soyisim; yaparsan "wmaracı" olarak gözükür. Ben orada email şifre ve anlık zamanı birleştirdim. $time değeri içinde strtotime('now') kullanabilirsin. Yani örneğin:
$email='test@gmail.com';
$password='sifre123';
$time=strtotime('now'); ise hash çıktısı bu şekilde olur (şuan bendeki zamana göre)
"d682fd32461dc961d9fa12d5c9a816a9aada7541" tabi ki saliseler sürekli ilerlediği zaman durmadığı için her milisaniye sonra farklı hash kodu görürüm böylece unique bir değer elde etmiş olurum.

Sonradan ayrılmasına gerek yok
"d682fd32461dc961d9fa12d5c9a816a9aada7541" kodumu tekrardan $email $password ve $time olarak almamalıyım zaten. Alabildiğim noktada hacklenme ihtimalim %90. Eğer ben alabiliyorsam hacker da alabilir. Bu yüzden "d682fd32461dc961d9fa12d5c9a816a9aada7541" hash koduyla yaptığım işlemlerde güvenli olacaktır. Her üyenin farklı bir hash kodu olacağı için id yerine hash koduyla işlem yaptırmam güvenlik açısından yeterli olacaktır.


Güvenli değil ama ille de ayırıcam diyorsan çok sağlam yüzlerce bilgisayarla blockchain sistemiyle yapabilirsin. Anca o tarz bir sistem çözer. Önce sha1 i çözmesi sonra md5 i çözmesi sonrada şifreden $time değerini ayırması falan gerekiyor. Buda nerden baksan aylar sürer.
BEYAZMASTER

kişi bu mesajı beğendi.

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)
HardCoreDeveloper Üstadım gerçekten çok net oldu şu an konu sayenizde...

Çok çok teşekkür ederim paylaştığınız bu bilgiler ile aydınlanan herkes adına...

Her daim görüşelim inş"ALLAH"...
 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al