Laravel Türkiye Discord Kanalı Forumda kod paylaşılırken dikkat edilmesi gerekenler!Birlikte proje geliştirmek ister misiniz?

yalcin tercih etmemek mi

Bu senaryolar ortaya çıktığında, eski verilerin şifresi çözülerek ve yeni şifreleme anahtarı kullanılarak şifreleme yeniden uygulanarak sorunların üstesinden gelinebilir.

böyle bir şey diyorlar ama nasıl yapılır fikrim yok.

yalcin Ben projeyi genelde localde yürütüyorum şuan hep yapım aşamasındayımda localden sunucuya aldığımda yeni key oluşturuyorum. Taşıdıktan sonra yapılabilir belkide.

evet dökümantasyonda okudum bunu yada buna benzer birşeyi .
Şimdi 5 bin kullanıcınız var ve bu 5 bin kullanıcınında şirket bilgilerini unvan , adres , vergi numarası vs gibi bilgileri ayrı bir tabloda tuttuğumuzu farzedelim.

Kullanıcıya bilgileriniz bizimle güvende diyebilmek adına bu bilgileri şifreliycez tabi aynı zamanda bir fatura kesmemiz gerekiyosa veri tabanından çekip bu bilgileride kullanmamız gerekiyor.

Birinci handikap arama : tabloda arama yapamıyoruz , yani kullanıcının şirket bilgilerinden neyi
$encrypted = Crypt::encryptString('10hanelivergino'); şeklinde
şifreleyip veritabanına kaydediyorsak o kolonda arama yapamıyomuşuz

İkinci handikap: 5 bin kullanıcınında şirket bilgilerini şifreledik ve aylar sonra unutup php artisan key:generate oluşturduk ozaman yen ibir hata kodu sayfasu yapmak lazım abort:1404 cenaze dolayısıyla kapalıyız

ben şöyle düşünüyorum .bu encryption ile her aklına geleni şifreleyemezsin dökümantasyondaki örnek bile token den verilmiş sanırım bu tarz şeyleri şifrelemek için kullanmak lazım

 public function store(Request $request): RedirectResponse
    {
        $request->user()->fill([
            'token' => Crypt::encryptString($request->token),
        ])->save();
 
        return redirect('/secrets');
    }

    yanlız ben yanlış analamdıysam
    protected $castsile modelde pasaport_number alanını Encrypt ediyor/tanımlıyor
    çözmek için birşey yapmıyor sanıyorum protected $castssayesinde otomatik olarak çözebiliyor çünkü dökümantastonda

    Encrypting a Value için
    'token' => Crypt::encryptString($request->token),

    Decrypting a Value içinse
    $decrypted = Crypt::decryptString($encryptedValue);

    şeklinde örnekkodverilmiş demekkicast bunu direk kendisi çözüyo yadavideoda adam göstermeye gerek görmemiş de olabilirneyse bence süper bir özellik

      yalcin database yazıldığı yazan şifrelenmiş yazılıyor orada şifrelenmiş saklanıyor. Fakat siz

      
      $employee = Employee::create([
          'name' => 'Paul Atreides',
          'email' => 'paul@arrakis.com', // Data is encrypted before storing
          'phone' => '123-456-7890', // Encrypted before storing
          'address' => 'The Keep 12', // Encrypted before storing
      ]);
      
      echo $employee->email; // Automatically decrypted
      echo $employee->phone; // Automatically decrypted
      echo $employee->address; // Automatically decrypted

      çağırdığınızda

      > echo $employee->email;
      paul@arrakis.com
      > echo $employee->phone;
      123-456-7890
      > echo $employee->address;
      The Keep 12

      deşifrelenmiş geliyor.

      Kaynak - https://laracoding.com/how-to-encrypt-and-decrypt-model-data-using-casts-in-laravel/

      aslında videoda dikkatli bakarsanız 02:18 de gösteriliryor gösteriliyor adam 501 yazıyor pasporta. Sonra database de şifreleniyor. Fakat çağırdığında normal deşifrelenmiş hali geliyor.

      yalcin çözmek için birşey yapmıyor sanıyorum protected $castssayesinde otomatik olarak çözebiliyor

      evet bunu söylemek istedim zaten otomatik yapıyo gidip controllerda bi yerde çözmek için bir fonksiyon felan yazmıyoruz demek istedim .

      Arkadaşlar password gibi bir daha orijinaline ihtiyacınız olmayacak alanları tek taraflı şifreleyip veri tabanında saklayın. Ben bunu alıp ekranda göstereceğim, listeleyeceğim dediğiniz kayıtları şifrelemeyin 🙂 Ben bunu veri tabanında şifreli saklarım ihtiyacım olduğunda decrypt yapar gösteririm gibi bir şey yapmayın. Biri sizin veri tabanınıza girdiğinde ilk yapacağı şey tüm veriyi bir anahtara göre şifrelemek olur ve anahtar için sizden fidye talep eder, siz istediğiniz kadar şifreleyin, veri gittikten sonra ne anlamı var 🙂 Şifrelenmiş alanlarda sorgu da yapamayacaksınız, bu da ayrı bir konu...

        aghabalaguluzade Backup işine ne kadar yatırım yaptığınıza bağlı. Ayrıca sürekli veri işlenen bir sistemde backup olsa da veri kaybı yaşanabilir, bu veri kaybının maliyeti istenen fidyenin 10 katı olabilir. Yedek var ama o yedeğe dönmemiz yarım saat sürer denirse, uygulamanız o yarım saatlik kesintiye uygun geliştirildi mi? Bu konular ayrı uzmanlık gerektiren şeyler. Siz işlerinizde fantezi yapmayın, genel kabul edileni yapın yeterli, uzaya roket göndermiyoruz sonuçta 🙂

          mgsmus olur hocam
          Ama araştırdıkca o kadar şeyler çıkıyor ki diyorum ki artık acaba bu aşırı mühendislik mi yoksa yapılmalı olan mı 😕