Bagaimana Mencegah Injeksi SQL? (Panduan Lengkap 2020) - MalCare

Diterbitkan: 2023-04-19

Apakah Anda khawatir tentang serangan injeksi SQL di situs web Anda? Jika Anda membaca ini, Anda mungkin sudah tahu konsekuensi dari serangan itu. Dalam posting ini, Anda akan mempelajari cara mudah untuk mencegah injeksi SQL .

Injeksi SQL dapat memungkinkan peretas untuk membajak situs WordPress Anda dan mengakses kontrolnya. Dari sana, mereka dapat mengalihkan lalu lintas Anda, mencuri data rahasia, menyuntikkan tautan spam, memanipulasi hasil pencarian dengan karakter Jepang, dan menampilkan iklan untuk produk ilegal. Serangan semacam ini dapat menyebabkan kerusakan yang tidak dapat diperbaiki pada situs dan bisnis Anda.

Untungnya, injeksi SQL dapat dicegah jika Anda mengambil tindakan pengamanan yang tepat. Dalam panduan ini, kami membahas injeksi SQL dan membahas secara mendalam langkah-langkah efektif untuk mencegahnya dan melindungi situs WordPress Anda.

TL;DR: Anda dapat mencegah injeksi SQL di situs WordPress Anda dengan menggunakan plugin keamanan yang andal. Instal MalCare dan plugin akan secara otomatis memindai dan mempertahankan situs Anda dari serangan semacam itu.

[lwptoc skipHeadingLevel=”h1,h3,h4,h5,h6″ skipHeadingText=”Final Thoughts”]

Apa Itu Serangan Injeksi SQL?

Semua situs WordPress biasanya memiliki area input yang memungkinkan pengunjung memasukkan informasi. Ini bisa berupa bilah pencarian situs, formulir kontak, atau formulir login .

Dalam formulir kontak, pengunjung akan memasukkan data mereka seperti nama, nomor telepon dan email dan mengirimkannya ke situs Anda.

formulir kontak rentan terhadap serangan injeksi sql

Data ini dikirim ke database MySQL situs web Anda. Itu diproses dan disimpan di sini.

Sekarang, bidang input ini memerlukan konfigurasi yang tepat untuk memastikan data diverifikasi dan disanitasi sebelum masuk ke database Anda. Misalnya, kerentanan formulir kontak adalah, hanya boleh menerima huruf dan angka. Idealnya tidak menerima simbol. Sekarang, jika situs Anda menerima data apa pun melalui formulir ini, peretas dapat memanfaatkan dan memasukkan kueri SQL berbahaya seperti:

 txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work? txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work?

Peretas menargetkan situs web yang memiliki langkah-langkah keamanan yang lemah atau adanya kerentanan yang memudahkan mereka untuk masuk. Dalam pengalaman kami, plugin dan tema sering mengembangkan kerentanan dan peretas sangat menyadari hal ini. Mereka menjelajahi Internet terus-menerus untuk mencari situs menggunakan plugin dan tema yang rentan.

Untuk menjelaskan ini, kami akan menggunakan contoh skenario. Katakanlah Pak A menggunakan plugin 'Formulir Kontak' untuk memberi daya pada formulir di Halaman Kontak situs webnya. Mari kita asumsikan bahwa kerentanan injeksi SQL ditemukan di plugin ini di Versi 2.4 dan pengembang memperbaikinya dan merilis versi terbaru 2.4.1.

Setelah dirilis, pengembang mengungkapkan alasan pembaruan yang membuat kelemahan keamanan diketahui publik. Ini berarti peretas mengetahui adanya kelemahan keamanan di plugin Formulir Kontak versi 2.4.

Sekarang, Mr.X menunda penginstalan pembaruan selama beberapa minggu karena tidak ada waktu untuk menjalankan pembaruan. Di sinilah ada yang salah.

Setelah peretas mengetahui tentang kerentanan, mereka menjalankan program atau menggunakan pemindai kerentanan yang akan merayapi internet dan menemukan situs web menggunakan versi plugin/tema tertentu.

Dalam hal ini, mereka akan mencari situs web menggunakan Formulir Kontak 2.4. Begitu mereka menemukan situs tersebut, mereka akan mengetahui kerentanan web yang tepat yang membuatnya lebih mudah untuk diretas. Dalam hal ini, mereka akan mengeksploitasi kelemahan injeksi SQL dan membobol situs Anda.

Jenis Injeksi SQL

Peretas menggunakan dua jenis suntikan SQL:

1. Injeksi SQL klasik – Saat Anda mengunjungi situs web, browser Anda (seperti Chrome atau Mozilla) mengirimkan permintaan HTTP ke server situs web untuk menampilkan konten. Server web mengambil konten dari database situs dan mengirimkannya kembali ke browser Anda. Begitulah cara Anda dapat melihat ujung depan sebuah situs web.

Sekarang, basis data situs web Anda berisi semua jenis data termasuk data rahasia seperti detail pelanggan, informasi pembayaran, serta nama pengguna dan kata sandi. Basis data Anda harus dikonfigurasi untuk hanya merilis data front-end. Semua data rahasia lainnya harus dijaga. Tetapi jika pemeriksaan keamanan aplikasi ini tidak dilakukan, peretas mengambil keuntungan.

Dalam serangan injeksi SQL Klasik, peretas mengirimkan permintaan berbahaya ke database Anda untuk mengambil data ke browser mereka. Tetapi mereka menggunakan string kueri untuk meminta informasi sensitif seperti kredensial masuk situs web Anda. Jika Anda belum melindungi informasi ini, informasi ini akan dikirim ke peretas. Dengan cara ini, mereka bisa mendapatkan detail login Anda dan masuk ke situs Anda. Penyerang juga dapat menggunakan pernyataan yang disiapkan sebagai cara mengeksekusi pernyataan basis data yang sama atau serupa berulang kali dengan efisiensi tinggi.

2. Injeksi Blind SQL – Dalam hal ini, peretas menyuntikkan skrip berbahaya melalui kolom input di situs web Anda. Setelah disimpan di database Anda, mereka menjalankannya untuk melakukan segala macam kerusakan seperti mengubah konten situs Anda atau bahkan menghapus seluruh database Anda. Dalam hal ini, mereka dapat menggunakan skrip jahat untuk mendapatkan hak administrator juga.

Kedua skenario tersebut dapat berdampak buruk pada situs web dan bisnis Anda. Untungnya, Anda dapat mencegah serangan semacam itu dengan mengambil langkah-langkah keamanan dan input validasi yang tepat di situs web Anda.

Langkah-langkah Untuk Mencegah Serangan Injeksi SQL

Untuk mencegah serangan injeksi SQL, Anda perlu melakukan penilaian keamanan situs web Anda. Berikut adalah dua jenis tindakan yang dapat Anda ambil untuk mencegah serangan SQL – ada yang mudah dan ada yang kompleks dan teknis.

Tindakan Pencegahan Mudah

  1. Instal plugin keamanan
  2. Hanya gunakan tema dan plugin tepercaya
  3. Hapus semua perangkat lunak bajakan di situs Anda
  4. Hapus tema dan plugin yang tidak aktif
  5. Perbarui situs web Anda secara teratur

Tindakan Pencegahan Teknis

  1. Ubah nama database default
  2. Mengontrol entri lapangan dan pengiriman data
  3. Perkuat situs web WordPress Anda

Mari kita mulai.

Tindakan Pencegahan Mudah Terhadap Serangan Injeksi SQL

1. Instal plugin keamanan

Mengaktifkan plugin keamanan situs web adalah langkah pertama yang perlu Anda ambil untuk melindungi situs web Anda. Plugin keamanan WordPress akan memantau situs Anda dan mencegah peretas masuk.

Ada banyak plugin untuk dipilih, tetapi berdasarkan apa yang ditawarkannya, kami memilih MalCare. Plugin akan secara otomatis memasang firewall aplikasi web untuk melindungi situs Anda dari serangan. Upaya peretasan diidentifikasi dan diblokir.

Selanjutnya, pemindai keamanan plugin akan memindai situs Anda secara menyeluruh setiap hari. Jika ada perilaku mencurigakan atau aktivitas berbahaya di situs Anda, Anda akan segera diberi tahu. Anda dapat mengambil tindakan dan memperbaiki situs Anda secara instan dengan MalCare sebelum Google mendapat kesempatan untuk memasukkan situs Anda ke daftar hitam atau penyedia hosting Anda memutuskan untuk menangguhkan situs Anda.

2. Perbarui situs web Anda secara teratur

Seperti yang kami sebutkan dalam contoh injeksi SQL kami sebelumnya, ketika pengembang menemukan kelemahan keamanan pada perangkat lunak mereka, mereka memperbaikinya dan merilis versi baru yang membawa tambalan keamanan. Anda perlu memperbarui ke versi baru untuk menghapus cacat dari situs Anda.

pembaruan inti wordpress

Kami menyarankan untuk mendedikasikan waktu seminggu sekali untuk memperbarui instalasi inti, tema, dan plugin WordPress Anda.

Namun, jika Anda melihat pembaruan keamanan telah dirilis, segera instal pembaruan tersebut.

3. Gunakan hanya tema dan plugin tepercaya

WordPress adalah platform paling populer untuk membuat situs web dan itu sebagian karena plugin dan tema yang membuatnya mudah dan terjangkau. Namun di antara banyaknya tema dan plugin yang tersedia, Anda harus memilih dengan hati-hati. Periksa detail plugin seperti jumlah penginstalan aktif, tanggal pembaruan terakhir, dan versi yang telah diuji.

detail plugin

Kami merekomendasikan mengunduhnya dari repositori WordPress. Untuk tema dan plugin lainnya, Anda harus melakukan penelitian yang tepat untuk memverifikasi bahwa mereka dapat dipercaya. Ini karena beberapa tema dan plugin pihak ketiga dapat dibuat dengan jahat oleh peretas. Itu juga bisa saja dikodekan dengan buruk yang membukanya untuk kerentanan.

4. Hapus semua perangkat lunak bajakan di situs Anda

Tema dan plugin bajakan atau null menarik. Ini memberi Anda akses ke fitur premium secara gratis. Namun sayangnya, ini biasanya datang dengan malware bawaan. Perangkat lunak bajakan adalah cara mudah bagi peretas untuk mendistribusikan malware mereka.

Saat Anda menginstalnya, malware diaktifkan dan menginfeksi situs Anda. Yang terbaik adalah menjauh dari perangkat lunak semacam itu.

5. Hapus tema dan plugin yang tidak aktif

Memasang plugin dan benar-benar melupakannya selama bertahun-tahun adalah hal yang umum. Namun kebiasaan ini dapat mengekspos situs Anda ke peretas. Semakin banyak plugin dan tema yang telah Anda instal di situs Anda, semakin besar kemungkinan munculnya kerentanan dan peretas memanfaatkannya.

Kami sarankan hanya menyimpan plugin dan tema yang Anda gunakan. Hapus sisanya dan jadikan situs Anda lebih aman. Pindai juga tema dan plugin Anda yang ada secara teratur.

Tindakan Pencegahan Teknis

Langkah-langkah ini mungkin memerlukan sedikit lebih banyak pengetahuan tentang cara kerja WordPress. Namun, saat ini, ada plugin untuk semuanya. Jadi Anda tidak perlu khawatir tentang kerumitan yang terlibat dalam penerapan langkah-langkah ini. Kami membuatnya sederhana!

1. Ubah nama tabel database default

Situs WordPress Anda terdiri dari file dan database. Di database Anda, ada 11 tabel secara default. Setiap tabel menampung berbagai data dan konfigurasi. Tabel ini diberi nama dengan awalan 'wp_'. Jadi nama tabelnya bisa wp_options, wp_users, wp_meta. Anda mengerti maksudnya.

ubah nama tabel database default untuk mencegah injeksi sql

Nama-nama ini sama di semua situs WordPress dan peretas mengetahui hal ini. Peretas tahu tabel mana yang menyimpan jenis data apa. Saat peretas menyisipkan skrip berbahaya di situs web Anda, mereka tahu di mana skrip tersebut akan disimpan. Menggunakan metode sederhana, mereka dapat menjalankan perintah SQL untuk menjalankan aktivitas berbahaya.

Tetapi jika Anda mengubah nama tabel, itu dapat mencegah peretas menemukan di mana letak skrip. Jadi ketika peretasan mencoba menyuntikkan kode SQL ke dalam tabel database Anda, mereka tidak akan dapat mengetahui nama tabelnya.

Anda dapat melakukannya dengan menggunakan plugin seperti Change Table Prefix atau Brozzme. Cukup instal salah satunya di situs Anda dan ikuti langkah-langkahnya.

Anda juga dapat melakukannya secara manual dengan mengedit file wp-config Anda. Perhatian – salah langkah kecil di sini dapat menyebabkan kesalahan database dan malfungsi situs. Ambil cadangan sebelum Anda melanjutkan.

  • Buka akun hosting Anda > cPanel > Manajer File.
  • Di sini, akses folder public_html dan klik kanan pada file wp-config.
  • Pilih Edit dan temukan kode berikut
    “$table_prefix = 'wp_';”
  • Ganti dengan –
    “$table_prefix = 'tes_';”

Anda dapat memilih awalan pilihan Anda. Di sini kami telah memilih 'test_' sebagai nama database baru. Setelah selesai, peretas tidak akan dapat menemukan perintah SQL mereka.

2. Mengontrol entri lapangan dan pengiriman data

Anda dapat mengonfigurasi semua bidang masukan di situs web Anda untuk hanya menerima jenis data tertentu. Misalnya, bidang nama hanya boleh mengizinkan entri alfa (huruf) karena tidak ada alasan mengapa karakter numerik harus dimasukkan di sini. Demikian pula, bidang nomor kontak hanya boleh menerima angka.

Anda dapat menggunakan fungsi sanitize_text_field() yang membersihkan input pengguna. Validasi input ini memastikan bahwa entri yang tidak benar atau berbahaya dapat diblokir.

3. Perkuat situs web WordPress Anda

Ini adalah salah satu langkah terpenting yang dapat Anda ambil untuk melindungi situs WordPress Anda dari serangan injeksi SQL. Apa itu pengerasan situs web?

Situs web WordPress menawarkan banyak fungsi untuk membantu Anda menjalankan situs. Namun, sebagian besar orang tidak menggunakan banyak fungsi ini. WordPress.org merekomendasikan untuk menonaktifkan atau menghapus beberapa di antaranya jika Anda tidak menggunakannya. Ini akan mengurangi kemungkinan serangan karena ada lebih sedikit elemen untuk dicoba oleh peretas!

Beberapa langkah pengerasan WordPress adalah:

  1. Menonaktifkan editor file
  2. Menonaktifkan instalasi plugin atau tema
  3. Menerapkan autentikasi 2 faktor
  4. Membatasi upaya masuk
  5. Mengubah kunci dan garam keamanan WordPress
  6. Memblokir eksekusi PHP di folder yang tidak dikenal

Untuk menerapkan langkah-langkah ini, Anda dapat menggunakan plugin seperti MalCare yang memungkinkan Anda melakukannya hanya dengan beberapa klik.

pengerasan malcare

Atau Anda dapat menerapkannya secara manual dengan mengikuti Panduan kami tentang Pengerasan WordPress.

Itu membawa kita pada akhir pencegahan serangan injeksi SQL. Jika Anda telah menerapkan langkah-langkah yang telah kami bahas dalam lembar contekan injeksi SQL ini, situs Anda akan aman

[ss_click_to_tweet tweet=”Serangan injeksi SQL dapat dicegah! Gunakan panduan ini untuk menerapkan langkah-langkah keamanan yang tepat di situs WordPress Anda.” konten =”” style =”default”]

Pikiran Akhir

Mencegah benar-benar lebih baik daripada mengobati. Serangan injeksi SQL dapat menyebabkan stres yang tidak perlu dan beban keuangan yang berat.

Sebagian besar tindakan yang kita diskusikan hari ini dapat dengan mudah diimplementasikan dengan menggunakan plugin. Jadi Anda tidak perlu khawatir jika Anda tidak paham teknologi! Anda masih bisa melindungi diri sendiri!

Seiring dengan menerapkan langkah-langkah ini, kami sangat menyarankan untuk mengaktifkan MalCare di situs Anda. Firewall-nya akan secara aktif mempertahankan situs web Anda dari serangan. Itu memindai situs Anda setiap hari untuk memeriksa upaya peretasan dan malware di situs Anda.

Anda dapat menganggapnya sebagai penjaga keamanan situs web Anda yang memantau situs Anda dan mencegah orang jahat keluar. Anda dapat memiliki ketenangan pikiran mengetahui situs Anda dilindungi.

Cegah Serangan Peretasan Dengan Plugin Keamanan MalCare Kami!