Çözüldü C++ neden güvenli değil?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Çözüm
Düzgün yazılmamış sınıflar, düzgün yazılmamış metotlar C++'ın güvenilir olmama sebebidir. C++ security'den ziyade safety açısından dikkatsiz insanların elinde kötü bir dil.

Eğer security konuşuyorsak herhangi bir dilde yazılmış kötü ve basit bir şifreleme algoritması başkaları tarafından çözülebilir. Fakat safety söz konusu olduğunda Rust, C# gibi diller C++'tan daha güvenliler. Bunun sebebiyse varsayılan olarak belleğe erişmeye izin vermiyor oluşları. Rust ve C#'ta pointerlarla ilgilenmek istediğinizde unsafe olarak işaretlemeniz gerekiyor o fonksiyonu ve veriyi. Aksi halde kullanamıyorsunuz. C++'ta böyle bir şey yok. Doğrudan pointerlar kullanılabilir ve dikkatsiz bir kullanımda memory leak/bellek sızıntısı, segmentasyon hataları ve bir çok soruna sebep olabiliyor. Bu yüzden güvenli değil deniyor.
Pointer mantığından dolayı. Belleğe direk erişimi olması bir güvenlik açığı sayılıyor, bunu hack gibi düşünmeyin sistemin optimal çalışmasını engelleyen bir durum varsa güvenli değil damgası yer.

Mesela pointer ile ayırdığınız bir belleği kullandınız ve geri silmediniz, programı kapatmanız bile o bellek tutulmaya devam edecek bellek kaybı oluşturacak.
 

Güvenlir değilden ziyade Pointer başta olmak üzere birçok bileşende kontrolün sizde olmasından dolayı ayarlamalarını iyi yapmanız gerekebilir. Onun dışında bir programlama diline direkt güvenilir demek çok da olası değil.

Evet bellek kontrolünün iyi yapılmaması güvenlik açığı oluşturuyormuş.c++'ta dikkat etmem gereken yer sadece pointer mı?
 
Pointer olayı var C++ da. Bellek yönetimi yapılabiliyor. Bellek taşması diye bir saldırı tipi var. Bir belleğin boyutundan fazla paket gönderildiği zaman sisteme erişilebiliyor. C++ dıger dillere nazaran biraz daha güvenli. Ancak %100 güvenlik hiçbir zaman mümkün değildir. Elinizden geldiği kadar güvenlik açığı bırakmamaya çalışmanız lazım.
 
Düzgün yazılmamış sınıflar, düzgün yazılmamış metotlar C++'ın güvenilir olmama sebebidir. C++ security'den ziyade safety açısından dikkatsiz insanların elinde kötü bir dil.

Eğer security konuşuyorsak herhangi bir dilde yazılmış kötü ve basit bir şifreleme algoritması başkaları tarafından çözülebilir. Fakat safety söz konusu olduğunda Rust, C# gibi diller C++'tan daha güvenliler. Bunun sebebiyse varsayılan olarak belleğe erişmeye izin vermiyor oluşları. Rust ve C#'ta pointerlarla ilgilenmek istediğinizde unsafe olarak işaretlemeniz gerekiyor o fonksiyonu ve veriyi. Aksi halde kullanamıyorsunuz. C++'ta böyle bir şey yok. Doğrudan pointerlar kullanılabilir ve dikkatsiz bir kullanımda memory leak/bellek sızıntısı, segmentasyon hataları ve bir çok soruna sebep olabiliyor. Bu yüzden güvenli değil deniyor.
 
Çözüm
Pointer mantığından dolayı. Belleğe direk erişimi olması bir güvenlik açığı sayılıyor, bunu hack gibi düşünmeyin sistemin optimal çalışmasını engelleyen bir durum varsa güvenli değil damgası yer.

Mesela pointer ile ayırdığınız bir belleği kullandınız ve geri silmediniz, programı kapatmanız bile o bellek tutulmaya devam edecek bellek kaybı oluşturacak.
Bir diğer deyişle C, C++ gibi dillerde "garbage collector" yok. Bunu sizin elle sağlamanız gerek.
 

Yeni konular

Geri
Yukarı