Spring Boot İle Geliştirdiğim Projeme Yardım Eder Misiniz?
-
Herkese merhaba,
Arkadaşlar spring boot frameworkünü kullanarak bir rest servisi yazdım. Front-end ise Angular kullanıyorum. Maksat öğrenmek ve kendimi geliştirmek. Projemin konusu kişisel blog, her kısmı düşünüp ayarladım ve bitirdim. Fakat bazı sıkıntılarım var.
Örnegin database şifreli değil. Burayı hala halletmedim. Fakat kısa süre sonra halledeceğim.
Benim sormak istediğim sorular şunlar :
Rest servisim https üzerinden haberleşiyor. Fakat diyelim ki siz internet siteme girdiğinizde developer consolundan baktığınızda gelen giden isteklerin body'sini şifresiz bir şekilde görebiliyorsunuz. Sizce bu zararlı mı ? Body deki bilgi değersiz dahi olsa şifrelemeli miyim ?
Database'yi şifrelersem eğer, search işi nasıl olucak ? Bu konuda bana ufak bir kaynak gösterebilir misiniz ?
Authentication ve Authorization için token bazlı bir yapı kullanıyorum. Bunun için JWT 'yi tercih ettim. Tokenin kendisi değiştirildiğinde, oynama yapıldığında bu fark ediliyor fakat merak ettiğim şey token'in kendisi şifrelenmeli midir ?
Tokenları cookielerde httpsOnly true olucak şekilde tutuyorum. Sizce bu yanlış mı ?
Bu konuda tecrübesi olan arkadaşlar ile sohbet etmek ve tartışmak isterim. Aşağıya kaynak kodlarını ve sitemin adresini yazıyorum. Şu öğrenme yolunda bana bir destek atın :D.
Eğer mümkünse siteyi inceleyip hata olan yerleri bana söyler misiniz ? Güvenlik konusunda kendime güvenim 0.
Şimdiden teşekkürler
site adresi : https://blog.kayafirat.com
kaynak kodlar : https://github.com/firatkaya1/kayafirat.com-back-end
edit : link ekledim.
Admin not. Konunun silinmesini istemissiniz ama forum kimsenin ozel yardim masasi degildir, onca insan emek harcayip destek verdigi icin konuyu silemiyorum. Linklerin kaldirilmasini veya kisisel bilgilerin oldugu kisimlarin silinmesini isterseniz yalnizca o kisimlar icin yardimci olabilirim ama konunun tamamini silemiyorum. Isteginiz varsa tekrar sikayet butonuyla iletebilirsiniz.
-
kolay gelsin hacı, ben de bi ara vaadin'e sarmak istiyorum, çok eğlenceli duruyo
-
yolbulucu bunu yazdı
kolay gelsin hacı, ben de bi ara vaadin'e sarmak istiyorum, çok eğlenceli duruyo
Eyw hocam, hocam Spring boot ile deneyiminiz var ise sizce ne durumdayım ? :D Vaadin'i siz söyleyince hemen inceledim. Açıkcası kariyer planımı piyasaya göre en çok nerede ihtiyaç varsa o teknolojilere yatırım yaparak çizmek istiyorum. İş ilanlarında en çok gördüklerim frontend için react-angular, backend için ise java-c#-go-python.
-
Multi kategori + etiket bulutu + yorum + ssr?
-
end bunu yazdı
Multi kategori + etiket bulutu + yorum + ssr?
hocam ne demek istediğinizi anlayamadım ? konuyu açarken bir hata mı yaptım acaba?
-
solsrce bunu yazdıend bunu yazdı
Multi kategori + etiket bulutu + yorum + ssr?
hocam ne demek istediğinizi anlayamadım ? konuyu açarken bir hata mı yaptım acaba?
Projene ek olarak,
Çoklu kategori özelliği, sistematik etiketler (toplam kullanım vs), sayfalanabilir yorumlar, front için SEO adına server side rendering
Eklenebilir projeye.
Csrf koruması ve captcha de düzgün çalışmıyor.
Captcha verification için backendi de kullan. Frontta yaptığın doğrulama kolaylıkla bypass edilebilir.
-
end bunu yazdısolsrce bunu yazdıend bunu yazdı
Multi kategori + etiket bulutu + yorum + ssr?
hocam ne demek istediğinizi anlayamadım ? konuyu açarken bir hata mı yaptım acaba?
Projene ek olarak,
Çoklu kategori özelliği, sistematik etiketler (toplam kullanım vs), sayfalanabilir yorumlar, front için SEO adına server side rendering
Eklenebilir projeye.
Csrf koruması ve captcha de düzgün çalışmıyor.
Captcha verification için backendi de kullan. Frontta yaptığın doğrulama kolaylıkla bypass edilebilir.
Yorumunuz için teşekkürler hocam. Bu sorunları en kısa zamanda çözeceğim.
-
- Örnegin database şifreli değil. Burayı hala halletmedim. Fakat kısa süre sonra halledeceğim.
* Veritabanını neden şifreleyelim ki? Bunun için çok özel bir neden olması lazım.
- Rest servisim https üzerinden haberleşiyor. Fakat diyelim ki siz internet siteme girdiğinizde developer consolundan baktığınızda gelen giden isteklerin body'sini şifresiz bir şekilde görebiliyorsunuz. Sizce bu zararlı mı ? Body deki bilgi değersiz dahi olsa şifrelemeli miyim ?
* Hayır şifrelememelisin. Zaten tarayıcının okuyabilmesi normal. HTTPS tarayıcı ile sunucun arasındaki trafiğin 3. kişiler tarafından izlenmesini engelliyor.
- Database'yi şifrelersem eğer, search işi nasıl olucak ? Bu konuda bana ufak bir kaynak gösterebilir misiniz ?
* Veritabanında ne sakladığını öğrenirsek daha fazla yardımcı olabiliriz.
- Authentication ve Authorization için token bazlı bir yapı kullanıyorum. Bunun için JWT 'yi tercih ettim. Tokenin kendisi değiştirildiğinde, oynama yapıldığında bu fark ediliyor fakat merak ettiğim şey token'in kendisi şifrelenmeli midir ?
* JWT durumsuz ortamlarda çok iyi bir seçenek. Tokenin değiştiğini algılamak yeterli (token geçersiz oluyor demek bu). Hayır, tokeni şifrelememelisin. Yapman gereken token'i hash ettiğin private keyi kaptırmamak. Zaten token'i şifrelesen çözmek için gereken anahtarı nasıl transfer edeceksin?
- Tokenları cookielerde httpsOnly true olucak şekilde tutuyorum. Sizce bu yanlış mı ?
* Cookie'de tutmak zorunda değilsin. Evet, httponly olarak tutmalısın (inject edilen jsler okuyamasın diye). Ayrıca secure bayrağını da vermelisin. Fakat bu konuda tarayıcının güvenilirliğine gebesin. Ayrıntılı bilgi için https://developer.mozilla.org/tr/docs/Web/HTTP/Cookies.
spring bilmediğimden yardımcı olamıyorum daha fazla. Genel sorular varsa yardımcı olabilirim.
-
YeniHarman bunu yazdı
- Örnegin database şifreli değil. Burayı hala halletmedim. Fakat kısa süre sonra halledeceğim.
* Veritabanını neden şifreleyelim ki? Bunun için çok özel bir neden olması lazım.
- Rest servisim https üzerinden haberleşiyor. Fakat diyelim ki siz internet siteme girdiğinizde developer consolundan baktığınızda gelen giden isteklerin body'sini şifresiz bir şekilde görebiliyorsunuz. Sizce bu zararlı mı ? Body deki bilgi değersiz dahi olsa şifrelemeli miyim ?
* Hayır şifrelememelisin. Zaten tarayıcının okuyabilmesi normal. HTTPS tarayıcı ile sunucun arasındaki trafiğin 3. kişiler tarafından izlenmesini engelliyor.
- Database'yi şifrelersem eğer, search işi nasıl olucak ? Bu konuda bana ufak bir kaynak gösterebilir misiniz ?
* Veritabanında ne sakladığını öğrenirsek daha fazla yardımcı olabiliriz.
- Authentication ve Authorization için token bazlı bir yapı kullanıyorum. Bunun için JWT 'yi tercih ettim. Tokenin kendisi değiştirildiğinde, oynama yapıldığında bu fark ediliyor fakat merak ettiğim şey token'in kendisi şifrelenmeli midir ?
* JWT durumsuz ortamlarda çok iyi bir seçenek. Tokenin değiştiğini algılamak yeterli (token geçersiz oluyor demek bu). Hayır, tokeni şifrelememelisin. Yapman gereken token'i hash ettiğin private keyi kaptırmamak. Zaten token'i şifrelesen çözmek için gereken anahtarı nasıl transfer edeceksin?
- Tokenları cookielerde httpsOnly true olucak şekilde tutuyorum. Sizce bu yanlış mı ?
* Cookie'de tutmak zorunda değilsin. Evet, httponly olarak tutmalısın (inject edilen jsler okuyamasın diye). Ayrıca secure bayrağını da vermelisin. Fakat bu konuda tarayıcının güvenilirliğine gebesin. Ayrıntılı bilgi için https://developer.mozilla.org/tr/docs/Web/HTTP/Cookies.
spring bilmediğimden yardımcı olamıyorum daha fazla. Genel sorular varsa yardımcı olabilirim.
Hocam teşekkürler cevabınız için. Aslında databasede farklı farklı tablolarım var. Örnegin kullanıcıların email adresleri ve şifreleri. Yada blog yazıları,yorumlar. Bunları şifrelememe gerek yok o zaman. Sadece kullanıcıların bilgilerini şifrelerim.
Bişi sormak istiyorum. Şimdi benim API'me sadece ben erişmek istiyorum. Yani bu api sadece blog.kayafirat.com'dan gelen isteklere cevap versin, diğer isteklerin hepsine hata versin. Bunu nasıl yapabilirim ? Örneğin biri tarayıcıya
https://api.kayafirat.com/firatkaya-0.0.1/api/v1/post/postTitle/Java%20Dersleri%209 yazıp istek attığında hata döndürsün ama blog.kayafirat.com üzerinden denendiğinde erişebilsin.
Örneğin https://api.1000kitap.com/kesfet?sirala=yukselenler&bolum=kesfet&sayfa=10&z=9&kume=192101322 API'sine direk istek attığımızda hata veriyor ama 1000kitap.com üzerinden atılan isteklere cevap veriyor. Bu mantıkta bir şey yapmak istiyorum. Bunun içinde bir filter mekanizması düşündüm. Sadece belli bir ip adresinden gelen isteği cevapla diğerlerinde hata döndür tarzı bir şey. Sizce bu mantıklı bir yaklaşım mı ?
-
solsrce bunu yazdıyolbulucu bunu yazdı
kolay gelsin hacı, ben de bi ara vaadin'e sarmak istiyorum, çok eğlenceli duruyo
Eyw hocam, hocam Spring boot ile deneyiminiz var ise sizce ne durumdayım ? :D Vaadin'i siz söyleyince hemen inceledim. Açıkcası kariyer planımı piyasaya göre en çok nerede ihtiyaç varsa o teknolojilere yatırım yaparak çizmek istiyorum. İş ilanlarında en çok gördüklerim frontend için react-angular, backend için ise java-c#-go-python.
spring bilmiyorum hocam ya, koduna hiç bakmadım bu yüzden. ama bence "piyasada neye ihtiyaç var" diye teknoloji seçme, hoşuna gidene sarıl. işini iyi yaptığın sürece her türlü iş bulursun zaten.
-
solsrce bunu yazdıYeniHarman bunu yazdı
- Örnegin database şifreli değil. Burayı hala halletmedim. Fakat kısa süre sonra halledeceğim.
* Veritabanını neden şifreleyelim ki? Bunun için çok özel bir neden olması lazım.
- Rest servisim https üzerinden haberleşiyor. Fakat diyelim ki siz internet siteme girdiğinizde developer consolundan baktığınızda gelen giden isteklerin body'sini şifresiz bir şekilde görebiliyorsunuz. Sizce bu zararlı mı ? Body deki bilgi değersiz dahi olsa şifrelemeli miyim ?
* Hayır şifrelememelisin. Zaten tarayıcının okuyabilmesi normal. HTTPS tarayıcı ile sunucun arasındaki trafiğin 3. kişiler tarafından izlenmesini engelliyor.
- Database'yi şifrelersem eğer, search işi nasıl olucak ? Bu konuda bana ufak bir kaynak gösterebilir misiniz ?
* Veritabanında ne sakladığını öğrenirsek daha fazla yardımcı olabiliriz.
- Authentication ve Authorization için token bazlı bir yapı kullanıyorum. Bunun için JWT 'yi tercih ettim. Tokenin kendisi değiştirildiğinde, oynama yapıldığında bu fark ediliyor fakat merak ettiğim şey token'in kendisi şifrelenmeli midir ?
* JWT durumsuz ortamlarda çok iyi bir seçenek. Tokenin değiştiğini algılamak yeterli (token geçersiz oluyor demek bu). Hayır, tokeni şifrelememelisin. Yapman gereken token'i hash ettiğin private keyi kaptırmamak. Zaten token'i şifrelesen çözmek için gereken anahtarı nasıl transfer edeceksin?
- Tokenları cookielerde httpsOnly true olucak şekilde tutuyorum. Sizce bu yanlış mı ?
* Cookie'de tutmak zorunda değilsin. Evet, httponly olarak tutmalısın (inject edilen jsler okuyamasın diye). Ayrıca secure bayrağını da vermelisin. Fakat bu konuda tarayıcının güvenilirliğine gebesin. Ayrıntılı bilgi için https://developer.mozilla.org/tr/docs/Web/HTTP/Cookies.
spring bilmediğimden yardımcı olamıyorum daha fazla. Genel sorular varsa yardımcı olabilirim.
Hocam teşekkürler cevabınız için. Aslında databasede farklı farklı tablolarım var. Örnegin kullanıcıların email adresleri ve şifreleri. Yada blog yazıları,yorumlar. Bunları şifrelememe gerek yok o zaman. Sadece kullanıcıların bilgilerini şifrelerim.
Bişi sormak istiyorum. Şimdi benim API'me sadece ben erişmek istiyorum. Yani bu api sadece blog.kayafirat.com'dan gelen isteklere cevap versin, diğer isteklerin hepsine hata versin. Bunu nasıl yapabilirim ? Örneğin biri tarayıcıya
https://api.kayafirat.com/firatkaya-0.0.1/api/v1/post/postTitle/Java%20Dersleri%209 yazıp istek attığında hata döndürsün ama blog.kayafirat.com üzerinden denendiğinde erişebilsin.
Örneğin https://api.1000kitap.com/kesfet?sirala=yukselenler&bolum=kesfet&sayfa=10&z=9&kume=192101322 API'sine direk istek attığımızda hata veriyor ama 1000kitap.com üzerinden atılan isteklere cevap veriyor. Bu mantıkta bir şey yapmak istiyorum. Bunun içinde bir filter mekanizması düşündüm. Sadece belli bir ip adresinden gelen isteği cevapla diğerlerinde hata döndür tarzı bir şey. Sizce bu mantıklı bir yaklaşım mı ?
İp adresine göre muamele yaparsan ben giremem. Benim ip adresim senin havuzunda yok.
Havuzunda varsa da tarayıcıdan direkt de erişim sağlayabilirim.
Cors nedir araştır.
Referer kontrolü nedir internetten bakın.
Yukarıda bahsettiğin iş için anahtar kelimelerin bunlar.
Ama bunlar da çok kolay patlatilabilir şeyler.
Kalıcı ve kesin bir şekilde önüne gecemezsin.
İyice zorlastirayim istiyorsan protobuf kullan json yerine.