Kekritisan WordPress: Perspektif Pengembang

Kekritisan WordPress: Perspektif Pengembang

Semakin banyak pengembang yang akhirnya menggunakan CMS seperti WordPress, meskipun mereka tidak menyukai platform tersebut.

Pengembang yang terampil sering kali lebih suka menggunakan solusi khusus, terutama jika Anda adalah pengembang yang sangat ahli dalam pengkodean. Dengan solusi khusus, Anda dapat membuat aplikasi yang sangat elegan yang bekerja dengan sangat baik. Namun, pengembang akhirnya menggunakan CMS seperti WordPress meskipun mereka sangat tidak menyukai platform tersebut.

Artikel ini ditujukan untuk para pengembang ini dan membahas banyak tantangan yang dihadapi saat bekerja dengan WordPress (WP). Kami akan menjelaskan kesulitan-kesulitan tersebut dan juga memberikan saran: bantuan Plesk, yang menyediakan toolkit WP yang sangat membantu untuk mempertimbangkan beberapa kritik utama dari CMS yang paling disukai di dunia: WordPress.

Mengapa pengembang menggunakan WordPress

Jangan salah, WordPress adalah CMS paling populer di pasaran karena alasan yang sangat bagus. Pada bagian ini kami akan menjelaskan mengapa CMS begitu populer bahkan di kalangan developer berpengalaman yang benar-benar dapat menulis kodenya sendiri.

Pertama, WordPress sangat mudah dipasang. Yang Anda butuhkan hanyalah lingkungan LAMP/LEMP standar – ​​Linux, Apache/Nginx, PHP dan MySQL/MariaDB sebagai DBMS. Jika Anda memilikinya, Anda dapat mulai menginstal WordPress.

Kustomisasi sama mudahnya karena WP CMS hadir dengan berbagai macam add-on, termasuk tema untuk menyesuaikan tampilan & nuansa front-end dan plugin yang menambah fungsionalitas. Dimungkinkan juga untuk membangun tema Anda sendiri dan pengembang berpengalaman juga dapat membuat plugin mereka sendiri, tetapi proses ini lebih kompleks.

Mungkin alasan terbesar popularitas WordPress adalah, tentu saja, fakta bahwa WordPress dapat diakses oleh pengguna non-teknis. Setelah WP terinstal tidak memerlukan pengalaman pengkodean atau pemahaman perangkat lunak untuk berjalan dengan baik, pengguna pemula dapat menerbitkan situs web dan menyiapkan instance WordPress segera setelah bekerja.

Apa sebenarnya masalah dengan WordPress?

Yah, CMS paling populer di dunia memiliki banyak masalah untuk dipertimbangkan. Kami tidak bermaksud mempermasalahkan masalah WordPress, tetapi berikut ini adalah diskusi yang jujur ​​dan kami berharap tim pengembangan di balik CMS yang sangat populer ini mengambil poin-poin berikut sebagai kritik positif. Inilah mengapa menurut kami WordPress membuat frustrasi pengembang:

Mampu secara luas, tetapi tidak pernah luar biasa

Awal dari WordPress sederhana. WP lahir untuk menjadi platform bagi mereka yang ingin menulis dan menerbitkan blog. CMS telah berubah total selama bertahun-tahun dan sekarang tidak seperti permulaannya yang sederhana. Beberapa orang menggunakannya sebagai sistem dasar untuk mengelola seluruh situs, sebagai platform untuk toko online, dan bahkan sebagai cara untuk menghasilkan situs statis (gila, tetapi kami juga telah melihatnya selama bertahun-tahun)

Ini semacam menyoroti bagaimana CMS dapat beradaptasi dan kami setuju dengan pernyataan itu, tetapi masalah menjadi begitu fleksibel adalah menjadi sulit untuk unggul dalam peran tunggal apa pun. Salah satu cara untuk menyadari hal ini adalah dengan mengintip melalui lensa plugin: ribuan plugin WordPress yang tersedia menunjukkan bagaimana orang mencoba memaksa WordPress menjadi sesuatu yang sebenarnya bukan atau lebih buruk lagi, melakukan sesuatu yang tidak mampu dilakukannya atau jika berhasil, ia melakukannya dengan buruk. Untuk alasan ini, ketika kami menggunakan WordPress dan kami sering menggunakannya dengan sukarela, kami tidak pernah memuatnya dengan plugin yang tidak terlalu diperlukan. Saat itu, kami lebih suka membuatnya sendiri.

Jelas, WordPress dibuat untuk pendekatan "buatan sendiri" ini dan fleksibilitas jelas memiliki banyak keuntungan, tidak diragukan lagi. Namun tanpa fokus yang kuat pada tugas tertentu, CMS berjuang keras untuk menawarkan solusi yang jelas. Fokus untuk mencoba menjadi segalanya bagi semua orang ini menyebabkan masalah besar. Namun, kami harus menunjukkannya: WordPress masih berfungsi dengan baik sebagai platform untuk membangun blog dan situs web non-kompleks serta situs e-niaga.

Hacks and Cracks: WordPress bisa menjadi pintu terbuka

Singkatnya, WordPress diretas sepanjang waktu dan itu adalah keluhan terbesar yang pernah kami dengar dari dunia pengembang. Tidak dapat disangkal, CMS penuh dengan lubang keamanan, tidak pernah berakhir. Ini seperti selimut pendek: Anda menyesuaikannya di satu sisi dan terbuka di sisi lain. Sebagian jumlah peretasan adalah karena popularitas WordPress, tetapi juga karena seberapa open-source WordPress.

Karena siapa pun dapat melihat kode sumber terbuka CMS, hal ini memungkinkan peretas menemukan kelemahan dalam kode tersebut. Kami tidak bermaksud mengatakan bahwa kode sumber terbuka adalah pendekatan yang buruk, tetapi menurut kami sifat sumber terbuka dari CMS WordPress berkontribusi pada masalah keamanannya yang tidak ada habisnya.

Analisis menunjukkan bahwa situs WordPress mengisi lebih dari seperempat internet. Tim WordPress mengetahui hal ini dan mencoba melakukan semua yang mereka bisa untuk memastikan CMS aman, tetapi dengan siklus pengembangan yang begitu cepat saat ini, mungkin sulit untuk sepenuhnya mengamankan aplikasi yang kompleks. Dan saat upaya keamanan gagal, jutaan situs web bisa terancam.

Kami tidak memiliki solusi yang jelas untuk tantangan keamanan WordPress selain, tentu saja, “perbarui instans WordPress Anda”. Meski begitu, siklus rilis WordPress membawa serta masalah yang unik dan tak ada habisnya.

Banyak orang mengatakan bahwa menjaga keamanan WordPress itu sederhana, dan itu benar untuk sebagian besar, tetapi pertanyaannya adalah mengapa pemilik situs harus melakukan daftar tugas untuk memastikan WordPress aman? Mengapa bagian keamanan WordPress ini tidak di luar kebiasaan?

  • Sangat mudah bagi seseorang untuk mengunggah file yang dapat dieksekusi ke WordPress, dan opsi ini harus dibatasi secara default. Hanya dibutuhkan orang yang sedikit pintar untuk mengunggah file dengan kode berbahaya ke dalam skrip PHP dan situs Anda akan disusupi.
  • Saat ini, opsi dapat dikonfigurasi dalam sistem file. Sebaliknya, WordPress harus menghapus ini dan membuat asumsi bahwa sistem file adalah "hanya-baca". Sementara inti WordPress melakukan ini, plugin tidak mengikuti pola perilaku ini. Jika Anda menemukan plugin yang mengubah file konfigurasinya saat aktif dalam produksi, hentikan penggunaannya. Melakukannya menunjukkan sistem file yang dapat ditulisi dan, akibatnya, cara mudah untuk membuat perubahan berbahaya. Salah satu solusinya adalah dengan menghapus file wp-config.php dari root sistem (WordPress tetap berfungsi) tetapi itu bukan jaminan keamanan total dan dalam hal apa pun itu mencegah berfungsinya banyak plugin yang ditulis tangan ke bawah oleh pengembang yang tidak sadar.
  • Secara default, WordPress memungkinkan pengguna untuk melakukan upaya login sebanyak yang mereka suka. Ini membuka pintu untuk serangan brute force di mana peretas terus mencoba kata sandi acak hingga login berhasil. CMS WordPress harus menonaktifkan upaya login tanpa batas saat instalasi.

Ini bukan daftar lengkap, ini hanya beberapa poin. Jelas, solusi perangkat lunak besar, terutama solusi sumber terbuka, tidak dapat sepenuhnya kebal terhadap serangan. Tapi poin kami adalah pengembang yang serius enggan menggunakan WordPress justru karena sangat rentan. Pengembang yang terampil lebih memilih untuk membangun aplikasi baru yang secara elegan memenuhi kebutuhan mereka dan dapat dilindungi dengan ketat – tanpa mengkhawatirkan kerentanan masa depan yang tidak diketahui.

Atau, dengan memanfaatkan pengaturan PLESK sebaik-baiknya dan tidak memuat WordPress dengan plugin “tidak direkomendasikan” atau lebih buruk “gratis” atau lebih buruk lagi masih ditulis dengan buruk (Anda memerlukan pengalaman di lapangan untuk dapat menilainya), Anda masih dapat menjadikan WordPress sebagai platform yang sangat baik juga dalam hal keamanan. Tapi ini bukan lagi manajemen "do-it-yourself", dibutuhkan tangan ahli.

Plugin sebagai sumber masalah

Pengembang yang baik tidak menggunakan plugin saat pertama kali macet. Sebaliknya, pengembang yang baik mencoba membuat solusi yang sederhana dan elegan. Sebaliknya, selalu mengandalkan plugin dengan mencarinya di internet atau mengandalkan yang disarankan oleh Komunitas adalah cara berpikir yang sangat salah.

Pada akhirnya sebuah plugin memudahkan untuk menambahkan fungsi spesifik ke WordPress, yang membuat berbagai macam plugin yang tersedia untuk WP menjadi kekuatan CMS – tetapi itu juga merupakan risiko. Sebanyak plugin dapat membuat segalanya lebih mudah dan lebih cepat, plugin juga melibatkan banyak risiko dalam hal keamanan dan pada saat yang sama memaksa Anda untuk memilih versi WP yang dapat Anda gunakan dan pada saat yang sama meningkatkan instans WordPress Anda melampaui ukuran yang berkelanjutan, meniadakan atau merusak kehadiran online Anda, kecepatan membuka situs dan dengan demikian jangkauan dan akibatnya pengindeksan yang benar di mesin pencari.

Plugin dan keamanan

Pertama, mari kita lihat masalah keamanan yang dibuat oleh plugin. Satu laporan menunjukkan bahwa lebih dari setengah masalah keamanan WordPress yang diketahui berasal dari plugin. Pengembang tunduk pada praktik baik apa pun yang diikuti oleh pembuat plugin – yang mungkin tidak begitu baik. Oleh karena itu, sebagai pengembang Anda harus menguji plugin secara menyeluruh sebelum menggunakannya. Sampai batas tertentu proses pemeriksaan ini dapat menghilangkan waktu yang Anda hemat dengan plugin, jadi pada saat itu Anda sebaiknya mempertimbangkan untuk mengembangkan dari awal fitur yang diperlukan untuk ditambahkan ke situs.

Batasan pada versi WP

Dikenal sebagai “batasan versi”, plugin dapat membatasi versi WP CMS mana yang dapat Anda jalankan. Sekarang, WordPress sangat agresif dengan siklus rilisnya, sehingga secara teratur merilis pembaruan baru dan bahkan sering terjadi platform tersebut merilis beberapa versi kecil atau tambalan pada bulan tertentu. Ini bisa dimengerti karena tim WP terus memperbaiki vektor serangan. Namun semua pembaruan ini memiliki masalah: pembaruan WP dapat merusak plugin, menyebabkan situs Anda berhenti berfungsi atau macet.

Tentu saja Anda perlu memperbarui CMS Anda, tetapi batasan versi yang diberlakukan oleh plugin dapat mempersulit pekerjaan ini. Beberapa pengembang plugin selalu menguji dan memperbarui plugin mereka, tetapi "dunia" kecil ini plugin premium itu tidak mewakili mayoritas. Di luar plugin premium ini, ada risiko nyata bahwa pemutakhiran versi WP benar-benar dapat merusak situs.

Plugin mengasapi

Mari kita asumsikan bahwa sebagian besar developer tahu bahwa penting untuk membangun proyek lean yang tidak menggunakan kode berlebihan. Sekarang, beberapa plugin mematuhi prinsip ini, tetapi banyak plugin yang sangat membengkak karena plugin ini mencoba menyelesaikan setiap masalah yang mungkin dimiliki pengguna. Adalah umum bagi pengembang untuk menemukan bahwa sebuah plugin memecahkan satu masalah sambil menawarkan solusi untuk lima puluh masalah lain yang tidak relevan dengan situsnya. (Belum lagi tema dan "pembangun").

Plugin mengganggu alur kerja WordPress Anda

Akhirnya, masalah umum lainnya yang dibuat oleh banyak plugin adalah kenyataan bahwa sebuah plugin dapat menghambat pengalaman pengguna di WordPress, ini tergantung pada efeknya. plugin mengasapi dari WordPress. Sebagai contoh, sebuah plugin dapat sepenuhnya mengubah cara sebuah postingan dibuat dan disebarluaskan di seluruh situs.

Ini menghasilkan masalah yang sangat umum dihadapi oleh pengembang WP, mereka merasa harus bekerja "di sekitar" plugin terlalu banyak, daripada hanya menggunakan plugin. Tidak dapat dihindari, pengembang mengambil proses melewati plugin ini karena plugin tersebut tampaknya memecahkan masalah proses (yang pasti tidak ada).

Arsitektur web telah berkembang

Kami telah menyebutkan bahwa WordPress telah ada cukup lama. Ketika dibangun, pengembang berasumsi bahwa sebuah situs web akan selalu menggunakan satu server, bersama dengan satu sistem file. Namun, semakin banyak pengembang yang menggunakan apa yang disebut arsitektur server mikro yang memanfaatkan banyak node. Mereka melakukan ini karena cara kerja ini lebih terukur dan fleksibel. Namun menggunakan WordPress pada arsitektur yang rumit dapat menimbulkan masalah, misalnya penggunaan FTP yang hampir eksklusif untuk pembaruan WP CMS.

Pengembang modern jelas akan berpikir bahwa memperbarui kode melalui FTP hanyalah kuno. Pengembang biasanya menggunakan alur kerja tertentu sehingga potensi masalah dapat dihentikan sebelum kode beroperasi. Ini berarti bahwa pengembangan dilakukan secara lokal, kode dikontrol versinya, dan kode tersebut juga diuji secara otomatis – semuanya melalui proses integrasi berkelanjutan. Jadi, cukup memuat kode baru ke dalam lingkungan yang menjalankan loop pendek, yang berarti ada kemungkinan besar terjadi kesalahan.

Lebih besar dari masalah penambalan hanyalah asumsi bahwa kami bekerja dengan sistem file tunggal pada satu node. Cluster multi-node dari server web meningkatkan kegagalan dan kinerja perangkat keras, itulah sebabnya pendekatan ini semakin banyak diadopsi. WP memang memiliki kendala, namun menginstal tema atau pembaruan plugin melalui FTP berarti hanya satu sistem file yang dapat diperbarui pada satu waktu. Jadi dengan cluster multi-node Anda dihadapkan pada melakukan pembaruan ini untuk setiap node.

Pengembang dapat mengatasi masalah ini, tetapi tetap menjadi kesulitan yang tidak mudah diselesaikan. Selain itu, prosesnya membutuhkan sistem file yang dapat ditulisi, yang pada gilirannya membawa masalah keamanan utama ke Database yang merupakan jantung dari WordPress.

Data yatim piatu dan struktur data secara umum

Pada awalnya, struktur data WordPress sederhana. Namun, segera diketahui bahwa ada tabel yang berlebihan di database WP. Misalnya, mengapa metadata perlu dipisahkan menjadi dua tabel: satu bernama "wp_posts" dan satu bernama "wp_postmeta"? Bukankah lebih baik memasukkan semua data dalam satu tabel? Hal yang sama berlaku untuk tabel komentar, yang memiliki tabel terkait kedua untuk metadatanya.

Hasilnya adalah ada data tambahan yang tersisa di seluruh database. Ya, WP menyertakan beberapa fitur yang membantu mengurangi efek data yatim piatu, tetapi fungsinya gagal saat Anda perlu memanipulasi jumlah baris dari ribuan baris. Pada dasarnya fitur WordPress menyebabkan server timeout dan menyebabkan kebocoran memori dan sama sekali tidak efektif.

Tentu saja, Anda dapat memilih untuk mengurangi data tanpa induk dengan langsung menulis kueri SQL untuk melakukannya. Tapi Anda harus benar-benar memahami bagaimana tabel terhubung sehingga Anda bisa menulis kueri SQL yang benar. Tingkat pemisahan data dalam database WordPress ternyata tidak berguna.

Apa Plesk Toolkit untuk WordPress lakukan untuk membuat segalanya lebih baik

Toolkit WordPress Plesk adalah cara mudah untuk menyiapkan dan menyesuaikan instans WordPress, semuanya dari satu panel kontrol. Anda dapat menggunakannya selama diinstal di situs web Anda. Berikut adalah beberapa area di mana Toolkit WordPress membantu menangani WP:

Manajemen keamanan

Dengan toolkit ini, Anda dapat secara otomatis menutup lubang keamanan yang paling terlihat. Misalnya, Anda dapat mengalihkan ping XML ke RPC, memastikan folder "wp-content" aman, dan banyak lagi. Toolkit menampilkan status keamanan situs Anda dan menandai masalah dengan "bahaya" atau "peringatan" yang merupakan rekomendasi untuk meningkatkan keamanan.

Memperbarui instans WP Anda

Tersedia sebagai fitur add-on di Toolkit 3.x dan yang lebih baru, fitur Smart Updates memungkinkan Anda menjaga situs produksi tetap berjalan dan memperbaruinya pada saat yang sama, tanpa risiko merusak situs. Alat ini memeriksa masalah yang mungkin terjadi karena pembaruan dan akan memberi tahu Anda jika ada semacam risiko.

Kloning

Ada banyak alasan mengapa Anda mungkin ingin membuat salinan situs WordPress Anda. Misalnya, Anda mungkin memiliki situs pementasan tempat Anda dapat menguji perubahan sebelum ditayangkan. Setelah siap, Anda ingin menyalin konten situs.

Atau, Anda mungkin memiliki situs publik dan Anda mungkin ingin membuat salinannya yang tidak ingin diakses oleh publik. Contoh lainnya adalah developer profesional yang memiliki salinan model instalasi WordPress dan hanya ingin mengkloningnya, termasuk tema dan plugin, secara otomatis.

Kami juga memiliki klien yang hanya ingin membuat beberapa salinan situs karena berbagai alasan, seperti untuk mendemonstrasikan bagaimana sebuah situs dapat terlihat berbeda dengan sedikit perubahan.

Apa pun alasan Anda, alat kloning di WordPress Toolkit memudahkan untuk menyalin semuanya, termasuk file situs, database situs, dan semua pengaturan WP CMS.

Sinkronisasi

Untuk berbagai alasan, Anda mungkin ingin memastikan bahwa dua situs web WordPress cocok. WP Toolkit memungkinkan Anda menyinkronkan database WP dan semua file WP secara otomatis.

Jika Anda memiliki salinan pementasan situs Anda, sementara salinan publik Anda berjalan di tempat lain, Anda mungkin ingin menyinkronkan situs karena Anda ingin menyalin perubahan yang Anda buat di situs pementasan ke situs langsung WP.

Demikian pula, Anda mungkin ingin menyalin beberapa data dari situs produksi ke instans pementasan sehingga Anda dapat memeriksa apakah perubahan yang dilakukan pada versi pementasan cocok dengan data langsung. Atau, perubahan yang Anda buat pada situs pementasan Anda menyebabkan perubahan pada tabel database Anda, dalam hal ini toolkit hanya memungkinkan Anda menyinkronkan perubahan ini ke database Anda jika diinginkan.

Kasus penggunaan lain untuk fitur Sinkronisasi WP Toolkit adalah ketika pengembang telah memperbarui situs pementasan ke versi ritel WordPress dan ingin mencerminkan perubahan di situs langsung.

Anda memiliki opsi untuk menyinkronkan seluruh WP CMS, atau hanya sebagian saja. Jadi, Anda dapat mencerminkan file WP Anda, basis datanya, atau keduanya. Ada perincian lebih lanjut yang ditawarkan di mana Anda dapat memilih antara menyinkronkan seluruh database atau hanya tabel, atau bahkan tabel yang ada di sumber tetapi tidak ada di tujuan. Dimungkinkan juga untuk mencerminkan tabel individual.

Perburuan bug di WP

Plesk WordPress Toolkit juga memungkinkan pengembang untuk secara otomatis mendeteksi dan memperbaiki kesalahan di sumber situs web dengan mengaktifkan mode debugnya.

Kesimpulan.

Setelah semua hal di atas jelas bahwa menjadi sangat penting untuk memilih tidak hanya pengembang untuk bekerja dengan atau agensi yang dapat mengikuti Anda, tetapi di atas semua hosting untuk menghosting situs Anda di WordPress. Bahkan dari hal-hal ini kami memahami apa artinya memiliki situs gelap di hosting profesional atau tidak.

WordPress bukanlah “objek” yang mudah untuk ditangani. Tentu, Anda merasa bebas, Anda pikir Anda tidak membutuhkan pengembang atau tidak terikat dengan agensi, Anda pikir luar biasa bisa melakukannya sendiri tetapi kenyataannya, kebenaran mengatakan sebaliknya dan saat ini keamanan bukan lagi masalah sekunder tetapi utama juga berdasarkan kewajiban dan tanggung jawab terhadap pihak ketiga.