- Katılım
- 30 Ocak 2025
- Mesajlar
- 4.984
- Makaleler
- 14
- Çözümler
- 100
- Beğeniler
- 8.074
Konu hakkında;
Her şeyden önce bu konunun tamamen eleştirel olduğunu ve PiluX'un beta olmayan sürümlerinin kodlarının yayınlanacağını belirteyim.
Bir ülkede bulunan büyük hedefleri olan bir proje, genelde ülkenin vatandaşları tarafından desteklenir. Ancak ne yazık ki Türkiye'de durum böyle değil. Örneğin beğenmediğiniz insanlar, ağzıyla kuş tutsa ve dört dörtlük muazzam proje ortaya çıkaracak olsa bile olacak ilk şey, yine bu ülkenin bir vatandaşı tarafından çamurlanmaya çalışılması. Ne demek istediğimi anlatayım arkadaşlar.
Açık kaynak;
Açık kaynak kodu; insanların bir yazılımın tam olarak nasıl davrandığını anlaması, sorun giderme tavsiyeleri, kendi projelerine dâhil etmek ve gerekirse "Fork" dediğimiz bir değiştirilmiş kopyasını oluşturmak için paylaşılır. "Maalesef Türkiye hariç" tüm dünyada kötüye kullanılmaz.
Şimdi gelelim neden "Türkiye hariç" ifadesini kullandığımı ve bir şeyin kodlarını paylaşırken içimin rahat olmadığını açıklayayım. Kendimiz üzerinden anlatayım.
Yaşadıklarımız;
TeTeOS.Net bir ekip adıdır. Direkt URL şeklinde bir isim olmasının sebebi başka bir konu. Ama bir kesim var ki bu ekibin varlığından rahatsız. Çünkü bu kişiler, TeTeOS.Net ekibinden değil direkt kurucusu Hasan Merkit'i hiç sevmiyorlar. Bir kesim daha var, onlar bizi tanımasa bile elektronik ortamda yapılan hiçbir şeyi emekten saymıyorlar. Onlar kafasına göre gördüğü kodu değiştirip lisans ve credits kısmını siliyor.
İyice örneklendireyim mi?
1. Örnek: İptal edilen proje: T.Frame() [TeTeOS.Net Framework] kusurlarıyla ekibi amatör göstermeye çalışmak
Bu projenin amacı, C#, Gambas3, Visual Basic gibi dillerde bir class (yani kitaplık) sağlayarak kod yazma işini mükemmel seviyede basitleştirmek idi.
Mesela aramızdan bir geliştiricinin kullandığı işletim sisteminin adını okumak için Linux'ta /etc/os-release okumak, yoksa farklı yollarla bulmak, Windows'ta da NT sürümüne bakıp ayrıştırmak (ki Windows 11'de de ek BuildNumber okunarak ayırt ediliyor) gibi özelliklerle uğraşması yerine Framework tarafından oluşturulan T.OS_Name değişkenini okuyup geçerek kolaylaştırmak gibi.
Kütüphane gün geçtikçe daha mantıklı çalışacak şekilde güncelleniyor ve daha fazla değişken ve fonksiyon ekleniyordu.
İşletim sistemleri bilgileri için değişkenlerimiz vardı: https://www.teteos.net/d/347-tframe-komut-sozlugu-isletim-sistemi
BIOS üstünden veri okumak için değişkenlerimiz vardı ve bu cihaz modeli tespitinde de yararlıydı: https://www.teteos.net/d/356-tframe-komut-sozlugu-bios
PiluX'e özel kısım vardı: https://www.teteos.net/d/353-tframe-komut-sozlugu-pilux
Sistem bilgileri çeken kısım vardı: https://www.teteos.net/d/400-tframe-komut-sozlugu-sistem-bilgileri
Kelime istemci kısmımız vardı: https://www.teteos.net/d/436-tframe-komut-sozlugu-kelime-istemci
Ki yukarıdaki URL'lere eklemeyi hazırlandığımız çok şey vardı.
Mesela siz bir dosya silmek için T.Del("dosya yolu", True) kullanabilirdiniz. Bunun avantajı da şu, 2. fonksiyon parametresi True olursa koşul ne olursa olsun o dosyayı zorla siler. Sizin bir dosyayı kilitli mi değil mi, sistemsel görünen dosya mı, kilitlenmiş mi gibi şeyleri kontrol edip satırları uzatmanıza hiç gerek yok.
T.CMD() komutu ise Linux'ta Bash satırı, Windows'ta da CMD satırı çalıştırıyor, okunabilir Output varsa o değeri alıyordu.
Mesela, Dim DosyaListesi As String = T.CMD("dir") şeklinde kullanırsam, direkt olarak aşağıdakini yazmış olurum:
Şimdi gelelim probleme. Bir projenin daha ilk sürümleri tabii ki de amatörce ve basit olabilir. Ama T.Frame()'nin son sürümleri (2023) kesinlikle böyle değildi. İlk sürümlerinin kodlarını da isteyenlere veriyorduk. Problem de burada.
2021 sürümlerinde bu proje ilk başlattığımızda her fonksiyon genelde betiğe başvuruyordu. Yani CMD veya Bash'e. Mesela T.Del() kullanırsanız direkt Net Framework üstünden silmek yerine arkada CMD'ye
Bu Framework içerisinde çok basit şeyler de bulunuyordu. Mesela
Minik değişiklikleri ortadan kaldırmak. Örneğin VB.Net üstünde Kelime.Replace("Eski", "Yeni") ile bunu yapabilirsiniz. Gambas3'de de Replace("Kelime", "Eski", "Yeni") şeklinde kullanılıyor. Bu minik farkı kaldırmak için tek satırlık fonksiyonlar bile açıyorduk. T.Frame() varsa iki dilde de T.String_Replace() yazacaksın. Kopyalayıp diğer dile yapıştırdığında bile uyarlaması kolay olsun.
Yazının başında açık kaynak kodlarının paylaşılma amacını söylemiştim ya? Daha da geliştirilebilsin, arkada ne döndüğüne bakılabilsin diye? İşte bu amaç ile kullanılmadı. İşte bu kod paylaşma bize kötülük olarak geri döndü.
Projeyi 2023'de sonlandırdık çünkü C#, Visual Basic ve Gambas3'ü kullanmak daha profesyonel dillere geçme kararı aldık. O dillerde de böyle bir Framework ihtiyacı bulunmuyordu. Ancak hafıza kartında 2021 kodlarını taşıyan birileri gelip bize sanki hâlen CMD üstünden çalışan Framework yapıyor ve tek amacımız "Ya biz Framework yaptık." demekmiş gibi davranmaya başladı.
Ama şöyle sorular da oluşmuyor değil:
1. Neden iptal edilmiş projeyi eleştiriyor?
2. İptal edilmiş projenin neden son sürümünü değil de elindeki ilk sürümü üstünden gidiyor?
3. Bu kişi neden her cevabımızı değil de sadece zayıf cevap kalmış kısımlarımızı sağa sola paylaşıyor?
Benim hatam da şu oldu, bize "Her şeyi CMD üstünden yapıyorlar!" dediklerinde buna itiraz etmiştim çünkü o esnada aklımdan güncel sürüm T.Frame() geçti. Ama kişi ilk sürümlerinden bahsediyormuş. Neyse fark etmez çünkü kişinin amacının bana "manipülasyoncu" demeye çalışması ve dediklerimin bir kısmını kesip farklı bir sitede projelerimize karşı kini olan kişilere yararlanmak için etiketleyerek paylaştığından haberdar oldum.
Yâni amacı şuydu: Eleştirmek değil yürütmeyi bıraktığımız projeyi hâlen aktifmiş gibi göstererek bazı kişilere yararlanmak. Bana manipülasyoncu diyerek ısrarla açığımızı göstermeye çalışan ve mesajların belirli kısmını kesip özellikle belirli kitleye paylaşması da ironik.
Kendisinin hiçbir mesajını silmeyeceğimi söylemiştim. Ancak amacının eleştiri değil çamur atmak olduğunu diğer sitelerdeki paylaşımlarından anlayınca sildim.
İşte kodların kötüye kullanılmasının ilk örneği budur. Size saldırmak için kullanılıyor. Gelelim ikinci konuya.
2. Örnek: Lisansı ve emeği hiçe sayıp yapımcı başkasıymış gibi gösterme sorunsalı
Tarayıcı tespit sistemimiz buna örnek olacaktır ki şöyle bir vaka yaşanmıştı: Biri eklentinin
Şimdi bu duruma bir tekrar bakalım. Sırayla neler olduğuna bir bakıp hatırlayalım:
1. Aylarca gece gündüz demeden tespit kütüphanemizi geliştirip XenForo'ya uyarlıyoruz ve güvenlik testlerini yapıyoruz.
Şimdi güvenlik testi ne alaka diyeceksiniz. Kullanıcıdan gelen veriyi işleyen her şeyde bir güvenlik riski vardır ve eklenti aptallaştırılarak sayfaya istenilen yazıyı basma gibi bir problem de doğurur. Evet, XSS açığından bahsediyorum ki eklentimiz bu açığa kolay kolay kanmaz. Mesela ağaç renkli forum sitesindeki eklentiyi bir konuya cevap yazarak test ettim ve o eklentinin açıktan etkilendiğini gördüm. Muhtemelen hâlen düzeltmemişlerdir çünkü farkında da değiller. Tabii onlara bildirmedim çünkü bana teşekkür etmek yerine var olan bilmedikleri hesabımı kapatıp düzelteceklerini bazılarınız tahmin edebiliyor. Açığın detaylarını vermeyeceğim ama art niyetli biri bunu öğrenirse bir sayfaya girdiğinizde tarayıcınızda istediği JS kodunu çalıştırabilir.
2. Bir kişi bizden eklentiyi satın alır. Bizle problemi olan biri de değil, dikkatinizi çekerim. İlk defa karşılaştığımız biri. Parasını verip forumunda bu sistemi kullanmak istiyormuş.
Ve bizden eklentiyi de satın alır. Burada görebilirsiniz.
3. XenForo eklentisini satın alırsanız açık kaynak olmasa da okuyabilirsiniz. Bunun önüne geçilmiyor maalesef. Ancak biz gerekli uyarıları da yapıyoruz ve satın alana böyle teslim ediyoruz.
Satın alan kişi bizim isimlerimizi ve lisans metnimizi siliyor ve sanki kendisi yazmış gibi "ÜCRETSİZ" yayınlayıp 5+ kişinin emeğini çalıyor. (5 değil 5+ deme sebebim, bize geri bildirim gönderenlerin de emek verdiğini düşünüyoruz.)
4. Bir süre sonra ekibimizden @afacanc38 arkadaşımız bu durumu fark edip bana telaşlı bir şekilde ulaşıyor.
5. Yapan kişiyi bulmak için araştırma başlatıyoruz ve kendisinin bunu yaptığına ulaşıyoruz. Forumlarından kendilerine bunu neden yaptıklarını soruyoruz ancak alaycı şekilde cevap alıyor, "Naaa, bu eklentiyi yapay zeka 2 dakikada yazar." şeklinde alaycı dönüş alıyoruz.
Bu arada eklentiyi yapay zekâ 2 dakikada yazar diyenlerin hepsine "Yaptır o zaman." diye cevap verdik. Hiçbiri ortaya bir şey koyamadı.
Yapay zekâ kullanmadan aylarca yazılmış eklenti, tespit kütüphanesini de dâhil edersek aylarca değil 1 yılı aşkın üstünde uğraşılmış bir çalışmadan bahsediyoruz.
6. Sitelerden kaldırmak için uğraşıyor ve DMCA'ya ulaşıyoruz. Yapan kişi de hâlen keyfinde.
7. Son çare olarak arkadaşın adını ve yaptığını X'de ve forumlarda paylaştık. Tüm herkese rezil olunca özür dilemeye anca karar verdi.
Peki işin sonunda ne oldu? Satışta olan bir eklentinin korsan hâlini elbet yurt dışından biri çıkaracak ve yayınlayacak diye girişmeye başladık bu yola. Ama en azından o korsan sürümünde bile credits kısmında adımız olacak dedik. Bir Türk çıktı, tüm isimlerimizi ve ekip adımızı kazıyarak silip korsan sürümünü dağıtmaya başladı. Biz de DMCA şikayeti ve sitelerden kaldırmak için haftalarca uğraştık.
Özürü kabul ederek büyüklüğü biz yapıp konuyu erken kapattık. "Keşke mahkemeye verseydiniz." diyen herkes de haklı. Ancak konuyu erken kapatıp projelerimize odaklanmaya devam etmeye karar aldık.
Ha bu arada, bu yorum da aşırı haklı:
Şimdi kendinizi benim yerime koyun;
Sizden bunu düşünmenizi istiyorum:
Buna rağmen kodlarınızı paylaşır mıydınız? Size bırakıyorum.
Sıradaki hedef: Çıkmadan çamur yiyen PiluX, çıktıktan sonra kodları kötüye kullanılabilir;
Sırf burada moderatör olduğum ve görevlerimi yaptığım için bana düşman kesilip projelerime de laf atmaya başlayanlara değinmiyorum bile. "Büyük adımlarla geliyor.
, Beta'dan öteye gidemez." yazmaya da devam edebilirler.
Ben artık bir şeyin kodlarını paylaşırken lisans metnini koyacak olsam bile içim rahat olmayacak. Çünkü yine bu ülkenin insanları, bu ülkeden çıkacak bir projeye nasıl çamur atarız diye bakacaklar veya birileri gelip sadece ismimizi silip bunca ekibin yazdığı kodu kendisi yazmış gibi yapacak.
Ama PiluX konusunda da şöyle bir şey yapmayı düşünüyorum: PiluX.SH, aslında PiluX kaynak kodlarının ta kendisi olacaktı. Bir sistemi PiluX'e çevirmek için altyapıyı hazırlıyor ve gerekli olan scripti üretiyor. Ürettiği script ise ikinci katmanı oluşturuyor; bu katman mevcut Ubuntu veya Debian sürümlerini PiluX'e çeviriyor.
1. katmanın kaynak kodlarını yayınlar isem, 2019 yılından beri bilgisayar başında öğrendiğim ne varsa üzerine döktüğüm scripti paylaşmış olacağım. Birileri de gelip bununla oynayarak kendi işletim sistemini yapar, benim yıllarca öğrendiklerimi bir günde öğrenir ve üstüne adımı silip bana rakip sistem çıkarır.
Peki ya PiluX.SH değil de sadece 2. katmanı paylaşırsam? Yine açık kaynak kodunu vermiş olurum. Çünkü yazdığım araç, resmen açık kaynak kod üreticisi.
Sadece 2. katmanı paylaşıp bunu söylesem nasıl olur:
Ama yarın öbür gün başkasında kendi kodlarımı görüp kendi kodlarımın değiştirilmiş hâlini bana rakip çıkarması da etik değil. Özellikle beni sevmeyen siteye gidip projesini paylaşırsa.
Umarım bu ülkede insanlar beni soğuttukları gibi farklı girişimcileri ve geliştiricileri işinden soğutmaz.
Tekrardan hatırlatmak faydalı olabilir: PiluX açık kaynak olacaktır, kodları paylaşılacaktır ve son kullanıcıya kaliteli deneyim sunmak için elinden geleni yapacaktır.
Her şeyden önce bu konunun tamamen eleştirel olduğunu ve PiluX'un beta olmayan sürümlerinin kodlarının yayınlanacağını belirteyim.
Bir ülkede bulunan büyük hedefleri olan bir proje, genelde ülkenin vatandaşları tarafından desteklenir. Ancak ne yazık ki Türkiye'de durum böyle değil. Örneğin beğenmediğiniz insanlar, ağzıyla kuş tutsa ve dört dörtlük muazzam proje ortaya çıkaracak olsa bile olacak ilk şey, yine bu ülkenin bir vatandaşı tarafından çamurlanmaya çalışılması. Ne demek istediğimi anlatayım arkadaşlar.
Açık kaynak;
Açık kaynak kodu; insanların bir yazılımın tam olarak nasıl davrandığını anlaması, sorun giderme tavsiyeleri, kendi projelerine dâhil etmek ve gerekirse "Fork" dediğimiz bir değiştirilmiş kopyasını oluşturmak için paylaşılır. "Maalesef Türkiye hariç" tüm dünyada kötüye kullanılmaz.
Şimdi gelelim neden "Türkiye hariç" ifadesini kullandığımı ve bir şeyin kodlarını paylaşırken içimin rahat olmadığını açıklayayım. Kendimiz üzerinden anlatayım.
Yaşadıklarımız;
TeTeOS.Net bir ekip adıdır. Direkt URL şeklinde bir isim olmasının sebebi başka bir konu. Ama bir kesim var ki bu ekibin varlığından rahatsız. Çünkü bu kişiler, TeTeOS.Net ekibinden değil direkt kurucusu Hasan Merkit'i hiç sevmiyorlar. Bir kesim daha var, onlar bizi tanımasa bile elektronik ortamda yapılan hiçbir şeyi emekten saymıyorlar. Onlar kafasına göre gördüğü kodu değiştirip lisans ve credits kısmını siliyor.
İyice örneklendireyim mi?
1. Örnek: İptal edilen proje: T.Frame() [TeTeOS.Net Framework] kusurlarıyla ekibi amatör göstermeye çalışmak
Bu projenin amacı, C#, Gambas3, Visual Basic gibi dillerde bir class (yani kitaplık) sağlayarak kod yazma işini mükemmel seviyede basitleştirmek idi.
Mesela aramızdan bir geliştiricinin kullandığı işletim sisteminin adını okumak için Linux'ta /etc/os-release okumak, yoksa farklı yollarla bulmak, Windows'ta da NT sürümüne bakıp ayrıştırmak (ki Windows 11'de de ek BuildNumber okunarak ayırt ediliyor) gibi özelliklerle uğraşması yerine Framework tarafından oluşturulan T.OS_Name değişkenini okuyup geçerek kolaylaştırmak gibi.
Kütüphane gün geçtikçe daha mantıklı çalışacak şekilde güncelleniyor ve daha fazla değişken ve fonksiyon ekleniyordu.
İşletim sistemleri bilgileri için değişkenlerimiz vardı: https://www.teteos.net/d/347-tframe-komut-sozlugu-isletim-sistemi
BIOS üstünden veri okumak için değişkenlerimiz vardı ve bu cihaz modeli tespitinde de yararlıydı: https://www.teteos.net/d/356-tframe-komut-sozlugu-bios
PiluX'e özel kısım vardı: https://www.teteos.net/d/353-tframe-komut-sozlugu-pilux
Sistem bilgileri çeken kısım vardı: https://www.teteos.net/d/400-tframe-komut-sozlugu-sistem-bilgileri
Kelime istemci kısmımız vardı: https://www.teteos.net/d/436-tframe-komut-sozlugu-kelime-istemci
Ki yukarıdaki URL'lere eklemeyi hazırlandığımız çok şey vardı.
Mesela siz bir dosya silmek için T.Del("dosya yolu", True) kullanabilirdiniz. Bunun avantajı da şu, 2. fonksiyon parametresi True olursa koşul ne olursa olsun o dosyayı zorla siler. Sizin bir dosyayı kilitli mi değil mi, sistemsel görünen dosya mı, kilitlenmiş mi gibi şeyleri kontrol edip satırları uzatmanıza hiç gerek yok.
T.CMD() komutu ise Linux'ta Bash satırı, Windows'ta da CMD satırı çalıştırıyor, okunabilir Output varsa o değeri alıyordu.
Mesela, Dim DosyaListesi As String = T.CMD("dir") şeklinde kullanırsam, direkt olarak aşağıdakini yazmış olurum:
DosyaListesi = "
Volume in drive C has no label.
Volume Serial Number is E6CE-6573
Directory of C:\Users\hasanmerkit
13.05.2026 12:58 <DIR> .
10.05.2026 01:15 <DIR> ..
13.05.2026 12:58 <DIR> .vscode-shared
10.05.2026 00:59 <DIR> Contacts
13.05.2026 12:59 <DIR> Desktop
13.05.2026 00:12 <DIR> Documents
13.05.2026 12:36 <DIR> Downloads
10.05.2026 00:59 <DIR> Favorites
10.05.2026 00:59 <DIR> Links
10.05.2026 00:59 <DIR> Music
10.05.2026 00:59 <DIR> Pictures
10.05.2026 00:59 <DIR> Saved Games
13.05.2026 12:58 <DIR> Searches
10.05.2026 00:59 <DIR> Videos
0 File(s) 0 bytes
14 Dir(s) 836.992.831.488 bytes free"
Şimdi gelelim probleme. Bir projenin daha ilk sürümleri tabii ki de amatörce ve basit olabilir. Ama T.Frame()'nin son sürümleri (2023) kesinlikle böyle değildi. İlk sürümlerinin kodlarını da isteyenlere veriyorduk. Problem de burada.
2021 sürümlerinde bu proje ilk başlattığımızda her fonksiyon genelde betiğe başvuruyordu. Yani CMD veya Bash'e. Mesela T.Del() kullanırsanız direkt Net Framework üstünden silmek yerine arkada CMD'ye
del /s /q veya benzeri komut gönderiyordu. Tabii ki de Net Framework üstünden çalışan programların kodları zaten araçlarla geri açılabiliyor ama biz isteyenlere de kodlarını veriyorduk zaten. İsteyenler de oldu.Bu Framework içerisinde çok basit şeyler de bulunuyordu. Mesela
String_Replace String_InString gibi. Mesela bir dize içerisinde bir başka dize arama gibi dönüşleri vardı. İyi de zaten C# ve Gambas3 içinde bu işlevi basitçe yapan bir kısım var. Ne gereği vardı? Onu da açıklayalım.Minik değişiklikleri ortadan kaldırmak. Örneğin VB.Net üstünde Kelime.Replace("Eski", "Yeni") ile bunu yapabilirsiniz. Gambas3'de de Replace("Kelime", "Eski", "Yeni") şeklinde kullanılıyor. Bu minik farkı kaldırmak için tek satırlık fonksiyonlar bile açıyorduk. T.Frame() varsa iki dilde de T.String_Replace() yazacaksın. Kopyalayıp diğer dile yapıştırdığında bile uyarlaması kolay olsun.
Yazının başında açık kaynak kodlarının paylaşılma amacını söylemiştim ya? Daha da geliştirilebilsin, arkada ne döndüğüne bakılabilsin diye? İşte bu amaç ile kullanılmadı. İşte bu kod paylaşma bize kötülük olarak geri döndü.
Projeyi 2023'de sonlandırdık çünkü C#, Visual Basic ve Gambas3'ü kullanmak daha profesyonel dillere geçme kararı aldık. O dillerde de böyle bir Framework ihtiyacı bulunmuyordu. Ancak hafıza kartında 2021 kodlarını taşıyan birileri gelip bize sanki hâlen CMD üstünden çalışan Framework yapıyor ve tek amacımız "Ya biz Framework yaptık." demekmiş gibi davranmaya başladı.
Ama şöyle sorular da oluşmuyor değil:
1. Neden iptal edilmiş projeyi eleştiriyor?
2. İptal edilmiş projenin neden son sürümünü değil de elindeki ilk sürümü üstünden gidiyor?
3. Bu kişi neden her cevabımızı değil de sadece zayıf cevap kalmış kısımlarımızı sağa sola paylaşıyor?
Benim hatam da şu oldu, bize "Her şeyi CMD üstünden yapıyorlar!" dediklerinde buna itiraz etmiştim çünkü o esnada aklımdan güncel sürüm T.Frame() geçti. Ama kişi ilk sürümlerinden bahsediyormuş. Neyse fark etmez çünkü kişinin amacının bana "manipülasyoncu" demeye çalışması ve dediklerimin bir kısmını kesip farklı bir sitede projelerimize karşı kini olan kişilere yararlanmak için etiketleyerek paylaştığından haberdar oldum.
Yâni amacı şuydu: Eleştirmek değil yürütmeyi bıraktığımız projeyi hâlen aktifmiş gibi göstererek bazı kişilere yararlanmak. Bana manipülasyoncu diyerek ısrarla açığımızı göstermeye çalışan ve mesajların belirli kısmını kesip özellikle belirli kitleye paylaşması da ironik.
Kendisinin hiçbir mesajını silmeyeceğimi söylemiştim. Ancak amacının eleştiri değil çamur atmak olduğunu diğer sitelerdeki paylaşımlarından anlayınca sildim.
İşte kodların kötüye kullanılmasının ilk örneği budur. Size saldırmak için kullanılıyor. Gelelim ikinci konuya.
2. Örnek: Lisansı ve emeği hiçe sayıp yapımcı başkasıymış gibi gösterme sorunsalı
Tarayıcı tespit sistemimiz buna örnek olacaktır ki şöyle bir vaka yaşanmıştı: Biri eklentinin
nulled (korsan) hâlini yapıp paylaştı.Şimdi bu duruma bir tekrar bakalım. Sırayla neler olduğuna bir bakıp hatırlayalım:
1. Aylarca gece gündüz demeden tespit kütüphanemizi geliştirip XenForo'ya uyarlıyoruz ve güvenlik testlerini yapıyoruz.
Şimdi güvenlik testi ne alaka diyeceksiniz. Kullanıcıdan gelen veriyi işleyen her şeyde bir güvenlik riski vardır ve eklenti aptallaştırılarak sayfaya istenilen yazıyı basma gibi bir problem de doğurur. Evet, XSS açığından bahsediyorum ki eklentimiz bu açığa kolay kolay kanmaz. Mesela ağaç renkli forum sitesindeki eklentiyi bir konuya cevap yazarak test ettim ve o eklentinin açıktan etkilendiğini gördüm. Muhtemelen hâlen düzeltmemişlerdir çünkü farkında da değiller. Tabii onlara bildirmedim çünkü bana teşekkür etmek yerine var olan bilmedikleri hesabımı kapatıp düzelteceklerini bazılarınız tahmin edebiliyor. Açığın detaylarını vermeyeceğim ama art niyetli biri bunu öğrenirse bir sayfaya girdiğinizde tarayıcınızda istediği JS kodunu çalıştırabilir.
2. Bir kişi bizden eklentiyi satın alır. Bizle problemi olan biri de değil, dikkatinizi çekerim. İlk defa karşılaştığımız biri. Parasını verip forumunda bu sistemi kullanmak istiyormuş.
Ve bizden eklentiyi de satın alır. Burada görebilirsiniz.
3. XenForo eklentisini satın alırsanız açık kaynak olmasa da okuyabilirsiniz. Bunun önüne geçilmiyor maalesef. Ancak biz gerekli uyarıları da yapıyoruz ve satın alana böyle teslim ediyoruz.
Satın alan kişi bizim isimlerimizi ve lisans metnimizi siliyor ve sanki kendisi yazmış gibi "ÜCRETSİZ" yayınlayıp 5+ kişinin emeğini çalıyor. (5 değil 5+ deme sebebim, bize geri bildirim gönderenlerin de emek verdiğini düşünüyoruz.)
4. Bir süre sonra ekibimizden @afacanc38 arkadaşımız bu durumu fark edip bana telaşlı bir şekilde ulaşıyor.
5. Yapan kişiyi bulmak için araştırma başlatıyoruz ve kendisinin bunu yaptığına ulaşıyoruz. Forumlarından kendilerine bunu neden yaptıklarını soruyoruz ancak alaycı şekilde cevap alıyor, "Naaa, bu eklentiyi yapay zeka 2 dakikada yazar." şeklinde alaycı dönüş alıyoruz.
Bu arada eklentiyi yapay zekâ 2 dakikada yazar diyenlerin hepsine "Yaptır o zaman." diye cevap verdik. Hiçbiri ortaya bir şey koyamadı.
Yapay zekâ kullanmadan aylarca yazılmış eklenti, tespit kütüphanesini de dâhil edersek aylarca değil 1 yılı aşkın üstünde uğraşılmış bir çalışmadan bahsediyoruz.
6. Sitelerden kaldırmak için uğraşıyor ve DMCA'ya ulaşıyoruz. Yapan kişi de hâlen keyfinde.
7. Son çare olarak arkadaşın adını ve yaptığını X'de ve forumlarda paylaştık. Tüm herkese rezil olunca özür dilemeye anca karar verdi.
Peki işin sonunda ne oldu? Satışta olan bir eklentinin korsan hâlini elbet yurt dışından biri çıkaracak ve yayınlayacak diye girişmeye başladık bu yola. Ama en azından o korsan sürümünde bile credits kısmında adımız olacak dedik. Bir Türk çıktı, tüm isimlerimizi ve ekip adımızı kazıyarak silip korsan sürümünü dağıtmaya başladı. Biz de DMCA şikayeti ve sitelerden kaldırmak için haftalarca uğraştık.
Özürü kabul ederek büyüklüğü biz yapıp konuyu erken kapattık. "Keşke mahkemeye verseydiniz." diyen herkes de haklı. Ancak konuyu erken kapatıp projelerimize odaklanmaya devam etmeye karar aldık.
Ha bu arada, bu yorum da aşırı haklı:
Şimdi kendinizi benim yerime koyun;
Sizden bunu düşünmenizi istiyorum:
- Belirli bir site var. Bu site hakkınızdaki olumlu her şeyi sansürlüyor, olumsuz şeyleri de yayınlıyor. (2020'de bir arkadaşlarına güzel cevap verdim, acısı yıllardır devam ediyor olsa gerek.)
- Sizden nefret ettiği için ekibinizi (TeTeOS.Net) ve projelerinizi (PiluX, T.Frame(), WinLove) hedef alıyor. Projelerinize saldırgan yaklaşımda bulunuyorlar.
- Daha önce size ait kodlardan isimleriniz ve lisans metni siline siline paylaşılıp kullanıldığını gördünüz.
- Daha önce bir projenizin kodlarını paylaştığınız birilerinin kodların sadece zayıf kısımlarını gösterip mesajlarınızı kese kese sağda solda paylaşıyor.
Buna rağmen kodlarınızı paylaşır mıydınız? Size bırakıyorum.
Sıradaki hedef: Çıkmadan çamur yiyen PiluX, çıktıktan sonra kodları kötüye kullanılabilir;
Sırf burada moderatör olduğum ve görevlerimi yaptığım için bana düşman kesilip projelerime de laf atmaya başlayanlara değinmiyorum bile. "Büyük adımlarla geliyor.
Ben artık bir şeyin kodlarını paylaşırken lisans metnini koyacak olsam bile içim rahat olmayacak. Çünkü yine bu ülkenin insanları, bu ülkeden çıkacak bir projeye nasıl çamur atarız diye bakacaklar veya birileri gelip sadece ismimizi silip bunca ekibin yazdığı kodu kendisi yazmış gibi yapacak.
Ama PiluX konusunda da şöyle bir şey yapmayı düşünüyorum: PiluX.SH, aslında PiluX kaynak kodlarının ta kendisi olacaktı. Bir sistemi PiluX'e çevirmek için altyapıyı hazırlıyor ve gerekli olan scripti üretiyor. Ürettiği script ise ikinci katmanı oluşturuyor; bu katman mevcut Ubuntu veya Debian sürümlerini PiluX'e çeviriyor.
1. katmanın kaynak kodlarını yayınlar isem, 2019 yılından beri bilgisayar başında öğrendiğim ne varsa üzerine döktüğüm scripti paylaşmış olacağım. Birileri de gelip bununla oynayarak kendi işletim sistemini yapar, benim yıllarca öğrendiklerimi bir günde öğrenir ve üstüne adımı silip bana rakip sistem çıkarır.
Peki ya PiluX.SH değil de sadece 2. katmanı paylaşırsam? Yine açık kaynak kodunu vermiş olurum. Çünkü yazdığım araç, resmen açık kaynak kod üreticisi.
Sadece 2. katmanı paylaşıp bunu söylesem nasıl olur:
Böyle bir şey yaparsam etik değil. Değil mi?CHROOT kullanmayı öğren kardeşim, CHROOT kullan. Al 2. katman to_pilux.sh scripti. Bununla da sistemi PiluX'e çevir. Al sana PiluX kaynak kodu. Sistem mimarisine göre bazı yerleri düzenlemeyi unutma. Onu da sen yap.
Ama yarın öbür gün başkasında kendi kodlarımı görüp kendi kodlarımın değiştirilmiş hâlini bana rakip çıkarması da etik değil. Özellikle beni sevmeyen siteye gidip projesini paylaşırsa.
Umarım bu ülkede insanlar beni soğuttukları gibi farklı girişimcileri ve geliştiricileri işinden soğutmaz.
Tekrardan hatırlatmak faydalı olabilir: PiluX açık kaynak olacaktır, kodları paylaşılacaktır ve son kullanıcıya kaliteli deneyim sunmak için elinden geleni yapacaktır.