Saya tidak percaya bahwa pertanyaan ini belum dijawab di situs ini, tetapi saya tidak menemukannya ketika mencari, jadi ...
Mengapa kejahatan ide buruk melawan alam menjadi hacking?
- Apakah benar-benar hebat untuk dapat meningkatkan versi inti Anda? Sebagian besar situs saya akhirnya memiliki core yang sangat ketinggalan zaman, jadi mengapa repot-repot?
- Bahkan jika itu sangat buruk bagi pemilik situs, mengapa komunitas sangat peduli? Mengapa itu disebut sebagai "membunuh anak kucing"? Bukankah itu agak hiperbolik?
- Peretasan inti sangat mudah, bukankah kita suka mengambil rute yang lebih mudah menuju solusi masalah?
- Apakah tidak ada masalah yang hanya bisa diselesaikan dengan meretas inti? Lalu bagaimana?
Jawaban:
Secara umum, ada tiga alasan untuk tidak mengubah kode inti Drupal:
Perubahan Anda akan hilang setiap kali Anda memperbarui Drupal, jika Anda tidak mengambil langkah-langkah yang diperlukan. Bahkan jika Anda membuat tambalan untuk versi Drupal saat ini yang Anda gunakan, tambalan tidak dapat diterapkan ke versi yang lebih baru, dan Anda juga perlu membuat tambalan untuk versi yang baru.
Perbaikan keamanan berlaku untuk inti Drupal seperti yang dipertahankan pada Drupal.org, tetapi tidak dapat diterapkan pada versi yang diretas. Itu berarti Anda harus memeriksa versi Anda tidak terpengaruh oleh masalah keamanan yang diajukan terhadap inti Drupal.
Jika versi yang diretas Anda memperkenalkan masalah keamanan yang berbeda, Anda adalah satu-satunya orang yang dapat Anda temukan, karena Anda tidak memiliki dukungan dari tim keamanan yang menyelidiki cacat keamanan yang ada dalam kode inti Drupal, dan di pihak ketiga modul yang dihosting di Drupal.org.
Perubahan yang Anda perkenalkan mungkin tidak kompatibel dengan Drupal itu sendiri, tetapi juga dengan modul pihak ketiga, yang diperlukan untuk bekerja dengan inti Drupal, bukan dengan versi peretasan yang dapat dibuat.
Setiap kali Drupal memperkenalkan fitur baru (yang masih terjadi di Drupal 7, dan di Drupal 6, meskipun dengan frekuensi lebih sedikit), atau perubahan API baru, ada kemungkinan versi yang diretas tidak sesuai dengan perubahan terbaru.
Yang mengatakan, adalah mungkin untuk membuat versi diretas, tetapi itu bukan tugas yang bisa dilakukan oleh satu pengembang, dengan cara yang sama Drupal tidak dikelola oleh satu orang. Bahkan, Pressflow adalah hack versi Drupal yang telah dibuat dengan kinerja dalam pikiran, dan untuk menyelesaikan beberapa masalah kinerja situs Drupal bisa memiliki.
Seringkali, dimungkinkan untuk mengubah fitur / perilaku tanpa mengedit kode inti Drupal. Selalu ada pengait yang memungkinkan untuk mengubah fitur / perilaku yang dimiliki Drupal, dan itulah metode yang disukai.
sumber
In the case your hacked version introduces a different security issue...
Saya tidak melihat ini sebagai argumen yang sangat kuat memodifikasi file inti versus apa pun. Jika saya tidak meretas inti, dan sebaliknya saya memperkenalkan masalah keamanan melalui modul maka sistem saya masih akan dikompromikan. Terkompromi dikompromikan, tidak masalah jika itu datang dari saya mengedit file yang ada, atau menambahkan yang baru.Saya bisa menulis jawaban yang luar biasa di sini, tetapi saya hanya akan memposting tautan ini: Jangan pernah retas inti !
Alasan utama yang saya kira adalah bahwa jika Anda meretas inti untuk melakukan sesuatu yang Anda butuhkan, dan kemudian perbarui ... BANG! Perubahan Anda hilang. Kalah. Anda kemudian dapat mencoba dan memutar kembali kode dari VCS Anda, tetapi mengingat Anda tidak dapat memutar kembali pemutakhiran basis data dari Drupal core - Anda sedang mencari untuk memulihkan semua kode dari VCS, dan kemudian memulihkan basis data dari cadangan Anda. Setiap kali Anda mencoba untuk memutar kembali kode Anda, Anda mungkin akan kemudian menyadari bahwa cadangan database pra-pembaruan terakhir Anda gagal, dan Anda akan bersumpah lebih dari yang pernah Anda sumpah sebelumnya.
Juga - yang paling penting - jika Anda meretas inti, maka Dries dan Webchick keduanya membunuh anak kucing: -o
sumber
"Apa yang tidak bisa dilakukan peretasan untuk saya, pengembang?"
"Apa yang tidak bisa dilakukan peretasan untuk klien saya?"
"Apa yang tidak bisa dilakukan peretasan inti untuk komunitas saya?"
Semua orang adalah pemenang ketika Anda tidak meretas inti!
sumber
Saat ini saya sedang mengerjakan situs web inti yang diretas. Saya mengalami kesulitan menemukan bagaimana sesuatu yang sesederhana font sedang diatur. Saya juga menghabiskan beberapa hari memperbaiki bug yang diperkenalkan oleh peretasan inti. Saya menemukannya dengan mencari string di seluruh kode drupal.
Jika Anda tidak mengikuti struktur standar pemrograman di drupal maka bagaimana orang lain dapat menemukan dan mengedit perubahan yang Anda perkenalkan? Ini khususnya menyakitkan karena dalam drupal setiap file php tunggal dapat mengimplementasikan hook. Coba cari tahu mana yang menyebabkan masalah.
sumber
Untuk menjawab pertanyaan ini, ya, terkadang ada masalah yang harus Anda atasi yang berarti Anda harus meretas inti (atau modul kontrib).
Dalam hal ini saya yakin tidak masalah untuk meretas selama Anda memasukkan banyak komentar dalam kode yang diretas dan mendokumentasikan semua yang Anda ubah.
Misalnya, untuk setiap perubahan inti atau contrib, saya membuat saya membuat patch. Jika itu generik dan bermanfaat bagi orang lain, saya kirimkan ke drupal.org dalam suatu masalah, jika tidak, itu untuk saya gunakan sendiri.
Saya kemudian mengkomit file tambalan ke kontrol versi saya bersama dengan perubahan kode.
Ini berarti bahwa saya dapat melihat dengan mencari file tambalan jika ada sesuatu yang diretas.
Selain itu, saya juga menambahkan daftar retasan ke dokumentasi pengembang untuk situs tersebut (Anda harus memiliki dokumentasi pengembang untuk kepentingan orang lain yang mungkin berfungsi di situs ini dan untuk diri Anda sendiri ketika Anda melupakan hal-hal yang tak terhindarkan).
Dalam dokumentasi peretasan ini, saya mencantumkan setiap peretasan dengan apa yang dilakukan peretasan dan mengapa, modul / file terpengaruh, nama file tambalan yang berisi kode peretasan, dan tautan ke masalah drupal.org terkait jika ada satu (hampir selalu) dalam kasus saya ada).
Maka Anda dan siapa pun yang bekerja di situs di masa depan memiliki daftar lengkap peretasan dan tidak perlu khawatir tentang sesuatu yang tidak sengaja rusak dengan pembaruan.
Kemudian untuk proses pembaruan, saya memeriksa daftar peretasan saya dan melihat sekilas file tambalan di semua modul yang saya perbarui. Jika ada peretasan dan memiliki masalah drupal.org, saya memeriksa masalah untuk melihat apakah versi terbaru memiliki tambalan, dalam hal ini saya menyingkirkan peretasan dengan pembaruan dan menghapusnya dari daftar peretasan saya (buat yakin dengan melihat pesan komit drupal.org bahwa apa yang dilakukan sama dengan versi tambalan yang Anda gunakan, atau setidaknya secara fungsional sama).
Jika tambalan tidak dilakukan, yang harus saya lakukan adalah memperbarui modul dan menerapkan kembali tambalan. Dalam banyak kasus, tambalan akan tetap berlaku bersih dan prosesnya mudah, tetapi kadang-kadang Anda harus melakukan reroll tambalan untuk versi baru dan kemudian memasukkan versi baru tambalan ke repositori lokal Anda (bersama dengan mempostingnya ke yang relevan masalah drupal.org jika berlaku).
Hal lain yang ingin saya lakukan jika saya memiliki lebih banyak tambalan atau tambalan yang berinteraksi dengan fungsionalitas inti suatu modul (atau hanya modul khusus yang meluas di atas modul drupal.org), adalah untuk memeriksa catatan rilis dari modul yang diperbarui ( itu berarti semua versi ada di antara versi Anda saat ini dan versi yang sedang Anda perbarui) dan pastikan tidak ada apa pun di sana yang dapat merusak kode Anda. Catatan: Banyak pengelola modul yang baik hari ini dengan memberikan catatan rilis lengkap tetapi masih banyak yang melakukan catatan rilis sampah. Dalam hal ini dalam beberapa kasus saya membaca semua pesan komit sejak versi saya saat ini (ini biasanya hanya dalam kasus di mana saya memiliki kode kompleks yang berinteraksi secara mendalam dengan modul lain). catatan:
Kemudian, setelah memperbarui (pada salinan pengembangan situs), uji secara menyeluruh. Anda pada akhirnya akan belajar apa arti menyeluruh setelah beberapa bug lolos.
Kemudian ketika sudah cukup diuji, tingkatkan situs langsung atau dorong pembaruan lokal Anda ke atas atau apa pun proses penyebaran Anda.
Alasan mengapa semua orang mengatakan tidak melakukannya, bahkan jika itu lebih mudah: Karena kebanyakan orang tidak memiliki sistem seperti yang saya uraikan, jadi ketika tiba saatnya untuk melakukan pembaruan, atau situs tersebut diserahkan kepada orang lain untuk bekerja pada, itu menjadi mimpi buruk dan banyak waktu (kadang-kadang banyak waktu) harus dihabiskan untuk memecahkan bug dan melacak peretasan dan mencari tahu mengapa mereka ada di sana, dll.
Jika Anda pernah mewarisi situs seperti itu, Anda akan sepenuhnya memahami :)
sumber
Jika Anda mencari nafkah dari menginstal dan membuat situs web Drupal, maka Anda harus selalu memperbaruinya. Jika sebagian besar situs Anda kedaluwarsa, Anda tidak profesional.
sumber