MediaWiki çekirdeğini hacklemeyin

This page is a translated version of the page Do not hack MediaWiki core and the translation is 100% complete.

MediaWiki çekirdeğini hacklemek genellikle diğer MediaWiki destek forumlarında önerilen bir çözüm olmakla birlikte, ideal bir çözümü değildir. Genellikle çözdüğünüzden daha fazla soruna neden olur ve yalnızca gelecekteki yükseltmeleri yüklemeyi zorlaştırır.

Bu maddenin amaçları doğrultusunda, "çekirdek", orijinal MediaWiki kurulumuna ait tüm dosyaları kapsamaktadır. Yani LocalSettings.php, docker-compose.override.yml, "extensions" veya "skins" klasörünüzdekiler veya kurulumunuzdan beri eklediğiniz diğer klasörler dışındaki tüm dosyalar.

Neden temel dosyaları değiştirmemelisiniz

MediaWiki'nin yapmak istediğiniz şeyi yapmasını sağlamak için çekirdek dosyaları değiştirmek ne kadar kolay olursa olsun, ayartmalara karşı koy.

  • Bunu yapmak, güvenlik ve hata düzeltmeleri gibi site güncellemelerinin uygulanmasını karmaşık, zor veya neredeyse imkansız hale getirecektir.
  • Siteyi sürdürmek için gelenleri zorlaştıracaksınız.
  • Sitenizi istismarlara karşı savunmasız bırakabilirsiniz.
  • Diğer geliştiriciler, çekirdeğinizi hacklediyseniz size yardımcı olmaya daha az eğilimlidir - başka bir nedenden dolayı ne yapıldığını bilmeleri zor değildir.

MediaWiki çekirdeği modüler olacak şekilde tasarlanmıştır, bu yüzden onu kesmek için hiçbir neden olmamalıdır. İstediğiniz bir özellik varsa ve değiştirici çekirdek dışında gerçekleştirilemiyorsa, bir uzantı geliştirmeyi veya kesmek için bir yama olarak göndermeyi düşünün. Hata raporu gönderin ve topluluğa gerçekleştirmek istediğiniz özelliği bildirin. Daha sonra test edilecek ve özelliğiniz MediaWiki çekirdeğinin bir parçası olabilir.

Vikilerin çekirdeğini hackleyen sorunlar

  • diff ögeniz 13650 satırın değiştiğini gösterirse, MediaWiki yükseltme süreleri 30 dakikadan 6 saate, hatta 6 haftaya kadardır.
  • Güvenlik açıkları nedeniyle spam ve diğer istenmeyen saldırılarda artış.
  • Çekirdek dosyalara çakışan hackler nedeniyle yeni özellikler eksik.
  • MediaWiki.org belgelerini kullanamama - hepsi temel dosyalarınızı hacklemediğiniz varsayımı altında yazılmıştır (tabii ki belirli bir hack kullanıldığında MediaWiki'nin nasıl çalıştırılacağıyla ilgili belgeleri yazmazsanız).
  • Orijinal sorunun tekrarı - bir hata raporu olarak, bir sorunu temel bir saldırıdan çok daha güvenilir bir yoldur - bir grup geliştiriciden başka bir nedenden dolayı soruna bakacak ve kaçırdığınız gerekli kod değişikliklerini keşfedebilir.
  • Geliştiricilere çekirdek dosyalarınızın çalışmadığı ve çok fazla sempati bulamadığı konusunda şikayet etmek - çekirdek dosyaları hacklerseniz - etkili teknik destek imkansızdır.

İstisnalar

Bu kuralın istisnaları var mı?

Hayır.

Tamam, çok nadiren. Ancak bu genellikle MediaWiki kod tabanına, geliştirme uygulamalarına ve güvenlik modeline son derece aşina olan kişilerin spesifik vikileri veya uygulamaları içindir. Değişikliklerini uygun şekilde belgeleyen ve kodlarıyla uygun revizyon kontrolü uygulayanlar. Eğer sormak zorundaysan, yapmamalısın.

Uzantılar

Bu sayfanın çoğunun önemli uzantılar için de geçerli olduğunu unutmayın. Semantic MediaWiki uzantılarını veya Vikipedi'de kullanılan uzantılarını ve diğer Wikimedia sitelerini hacklemeye başlamak kötü bir fikirdir.

Bir istisna, esas olarak kodunu yazılım deposundan almak yerine bu vikiden kopyalayarak yüklüyse olabilir. Bu, çok ciddi bir şekilde korunmadığı anlamına gelir.

Bunun yerine ne yapmalı

MediaWiki çekirdeğini hacklemek yerine, bu sırayla az çok dikkate alınması gereken birkaç alternatif çözüm vardır:

  1. MediaWiki kutunun dışında güçlü bir canavar, MediaWiki:Sidebar ve diğer pek çok medya gibi MediaWiki'nin arayüz mesajları ile çok şey yapabilirsiniz. JavaScript ve CSS eklemeler ve değişiklikler.
  2. Bir uzantı geliştirin kesmekinizin amacını gerçekleştirmek için veya yalnızca varolan kancalardan birini kullanın
  3. Hata raporu gönderin
  4. Diğerlerinin sizin düzeltmenizden yararlanabilmesi için kod veri havuzunu geliştirmeye katkıda bulunun

Ayrıca bakınız