Saya dihadapkan dengan argumen untuk nada "Anda tidak perlu kata sandi pengguna mysql yang kuat karena untuk menggunakannya, mereka sudah memiliki akses ke server Anda." Kita berbicara tentang kata sandi 4 digit yang merupakan kata standar kamus bahasa Inggris di situs web bisnis langsung.
Tanpa memengaruhi jawaban dengan pengetahuan dan pengalaman saya sendiri, saya ingin menunjukkan kepada mereka beberapa tanggapan dari sumber pihak ke-3 yang tidak tertarik. Adakah yang mau mencoba yang ini? Pemrograman / jawaban praktis akan dihargai.
root:root
login ini .1337
?Jawaban:
Siapa pun yang membuat argumen ini sepertinya mengatakan "Begitu seseorang memiliki kaki di pintu, Anda mungkin juga memberi mereka akses penuh". Dengan logika itu, firewall meniadakan kebutuhan untuk semua kata sandi di jaringan internal Anda.
Kata sandi yang kuat adalah satu langkah menuju membatasi kerusakan yang dilakukan oleh intrusi jaringan. Tidak ada alasan untuk mengangkat tangan Anda dalam kekalahan hanya karena satu bagian kecil dari jaringan Anda terganggu.
sumber
Ini benar-benar kembali ke gagasan ' Pertahanan dalam Kedalaman ' sehingga setidaknya kata sandi yang kuat dapat memperlambatnya sehingga Anda dapat menemukan dan memblokirnya. Saya suka analogi memiliki satu kunci untuk komunitas yang terjaga keamanannya dengan kunci di pintu setiap rumah.
sumber
Tergantung pada bagaimana pengaturan server MySQL Anda. Jika itu hanya menerima permintaan dari ip rumah (127.0.0.1), itu membuatnya lebih aman.
Diberikan skenario di mana Anda mengizinkan IP jarak jauh, itu menjadi kesepakatan yang jauh lebih besar.
Selain itu, selalu baik untuk memiliki keamanan yang kuat dalam hal intrusi - lebih baik mereka pergi dengan sesedikit mungkin.
sumber
Apakah ada kunci pada kotak Kas Kecil di Akuntansi? Jika demikian, mengapa? Bukankah bangunan itu memiliki keamanan fisik?
sumber
Ini tidak benar, karena mysql juga dapat digunakan di lingkungan klien-server lintas jaringan, dan secara default satu-satunya yang Anda butuhkan adalah pengguna / pass untuk mendapatkan akses ke database (offcourse, dengan 3306 port dibuka dan server terlihat publik ).
sumber
Memang bisa dengan cara lain: jika mereka memiliki akses ke mysql, mereka bisa dapat mengakses OS server itu sendiri.
sumber
Jika seseorang mendapatkan akses root ke server Anda, maka mereka tidak akan memerlukan kata sandi MySQL. Tetapi jika mereka hanya dapat menjalankan aplikasi di server Anda sebagai pengguna non-root dan non-web, maka kata sandi MySQL yang kuat masih dapat menyimpan data Anda. Tapi ya, kebanyakan peretasan berasal dari web, itu artinya peretas akan mendapatkan akses ke akun web Anda dan karenanya dapat mengekstrak kata sandi DB dari file PHP.
Semua ini dengan asumsi server MySQL Anda tidak menerima koneksi dari mana pun kecuali localhost. Jika tidak maka Anda membutuhkan PW yang kuat.
sumber
Sesuatu yang tampaknya telah diabaikan di sini adalah, apakah Anda mempercayai pengguna Anda di jaringan tepercaya?
Terus terang, saya tidak tahu, karena saya tahu seperti apa saya ketika saya memulai di IT. Saya akan menyodok dan mendorong bagian-bagian yang saya tidak punya haknya, dan terus terang kata sandi MySQL yang lemah akan menyenangkan bagi saya karena saya akan mengambil kesempatan keberuntungan dan masuk dan saya bisa membuat havock (kebetulan, tentu saja).
Bagaimana jika seseorang menggunakan rekayasa sosial untuk masuk ke jaringan tepercaya Anda? Lalu apa yang Anda lakukan? Jika mereka berada di mesin di belakang firewall mereka blammo, keamanan firewall rock-solid Anda hancur dan mereka langsung ke mesin.
Kata sandi yang kuat sangat sederhana untuk dilakukan dan ada banyak alat manajemen kata sandi untuk membuat menjaga kata sandi mudah, jadi tidak ada alasan untuk tidak melakukannya.
sumber
localhost
/127.0.0.1
sebagai tuan rumah. Dengan cara ini, tidak ada yang dapat mengakses database di luar (bahkan yang ada di jaringan yang sama).Eh. Jika server Anda terkunci IP, dan pengguna Anda dibatasi untuk SELECT pada seperangkat tabel di mana Anda tidak peduli dengan informasi itu, itu bukan masalah besar.
Di sisi lain, saya mengatur kata sandi MySQL saya dengan menekan keyboard selama satu menit, dan menyalin menempelkan omong kosong yang dihasilkan ke dalam file yang dilindungi, yang saya referensi dalam kode saya setiap kali saya perlu login. Ini adalah cara kerjanya.
Mengapa membuatnya mudah? Jika kata sandi dilampirkan ke akun lokal terbatas (seperti seharusnya), lalu mengapa Anda mengetiknya? Jika tidak, harus memiliki kata sandi yang kekuatannya relatif terhadap nilai data yang Anda lindungi.
sumber
Informasi akun / akses mySQL disimpan dalam file terpisah dari database aktual. Dengan demikian Anda cukup menarik dan melepas file yang berbeda ke tempatnya. Dengan mySQL jika mereka memiliki akses tulis ke bagian yang relevan dari sistem file Anda, permainan telah berakhir.
sumber
Karena persyaratan berubah ...
Jadi server hari ini yang terbatas untuk menerima koneksi MySQL hanya dengan mesin lokal, besok dapat dibuka sehingga alat eksternal dapat digunakan untuk mengelola database. Orang yang melakukan pengaturan ini mungkin tidak tahu bahwa ada kata sandi yang sangat lemah digunakan.
Jika pengguna Anda merasa tidak nyaman karena harus mengingat kata sandi yang baik, kuat (misalnya: panjang, acak), pertimbangkan membuatnya sangat kuat dan kemudian menyimpannya di
.my.cnf
- bahkan lebih nyaman daripada memiliki kata sandi yang lemah yang harus mereka ketikkan. Tentu saja, ada implikasi keamanan untuk ini juga, tetapi Anda harus menyimpan kata sandi di suatu tempat, misalnya aplikasi yang mengaksesnya, sehingga Anda sudah mengamankan salinan kata sandi.Tapi baca juga apa yang dikatakan @meagar.
sumber
Premis bahwa mereka sudah memiliki akses tidak benar. Namun, jika mereka memiliki akses, dan mereka memiliki akun tidak istimewa, mereka masih dapat dengan mudah meretas kata sandi mysql.
Juga, Jika server adalah server produksi langsung, daripada Anda mengiklankan diri Anda ke internet. itu berarti bahwa pada titik tertentu, seseorang AKAN mencoba serangan brute force pada server itu, termasuk mysql, baik port dan akun pengguna.
jika Anda peduli dengan data, langkah-langkah dasar untuk memiliki kata sandi root berbeda untuk database daripada untuk pengguna root. yang lain telah menyatakan bahwa Anda juga harus memiliki izin serendah mungkin untuk pengguna dan program.
kata sandi 4 karakter dapat diretas dalam hitungan menit, di komputer yang cukup murah.
Saya mungkin hanya mengulangi apa yang dikatakan orang lain, tetapi semakin banyak amunisi yang Anda miliki untuk manajer Anda, semakin baik.
sumber
Banyak alasan skenario kehidupan nyata diliput oleh posting sebelumnya jadi saya akan menambahkan satu "filosofi". Menggunakan kata sandi yang kuat dan mengambil tindakan pencegahan untuk memperketat keamanan Anda adalah filosofi kerja. Cara berpikir.
Menggunakan kata sandi yang lemah sekarang karena mysql hanya berjalan pada 127.0.0.1 dan hanya pengguna root yang memiliki akses yang menunjukkan bahwa Anda tidak berpikir ke depan. Apa yang terjadi jika suatu hari nanti Anda perlu memberikan akses over-jaringan ke mysql Anda. Apakah Anda ingat untuk menutupi semua keamanan yang Anda tinggalkan?
Admin yang baik menempatkan skenario terburuk terlebih dahulu ke titik paranoia.
sumber
Tergantung pada hak apa yang dimiliki pengguna, Anda harus selalu mengunci hal-hal pada berbagai tingkatan. Juga tergantung pada data yang Anda simpan di database Anda. Juga katakan secara hipotetis ada kerentanan di MySQL yang memungkinkan mereka mengambil alih seluruh basis data tetapi mereka hanya perlu masuk ke akun pengguna apa pun. Jika kata sandi Anda kuat, ini akan membuat kerentanan ini menjadi bisu. Tapi ini benar-benar tergantung pada kasus spesifik Anda.
sumber
Sangat mudah untuk menyamar sebagai orang lain di mysql. Diberi id pengguna tanpa kata sandi (keamanan terlemah) gunakan saja
mysql -u userid
. Jika memiliki kata sandi, ini sedikit lebih sulit, tetapi kata sandi yang lemah membuatnya mudah. Jika root tidak memiliki kata sandi, saya dapat mengakses root sebagaimysql -u root
. Saya kemudian dapat melakukan apa saja di dalam database yang dapat di-root.Penggunaan spesifikasi host dalam keamanan juga merupakan ide yang baik, terutama jika akses jarak jauh tersedia atau mungkin.
Kata sandi dalam file dapat dan harus diamankan dengan izin. Akses oleh root, atau pemilik file kata sandi itu sepele. Jika memungkinkan enkripsi kata sandi pada disk harus digunakan. Ini membuatnya sedikit lebih sulit untuk diakses, tetapi masih rentan.
sumber
Nah, jika Anda tidak meng-hosting MySQL db sendiri, tetapi menggunakan layanan hosting dan seseorang mendapatkan akses ke alamat IP Server Anda, nama pengguna dan kata sandi adalah garis pertahanan terakhir Anda. Itu selalu baik untuk memiliki nama pengguna / kata sandi yang aman.
sumber