Apa pengaturan ideal untuk mengatasi masalah keamanan?

8

Saya mengetahui persyaratan WP untuk direktori dan file tertentu agar dapat ditulis. Saya juga sadar bahwa membuat izin terlalu longgar dapat membuka lubang keamanan. Akhirnya, saya tahu bahwa pengguna yang (memasukkan server Anda di sini) berjalan seperti pada sistem Linux dapat menjadi faktor.

Selain keamanan, saya suka mengunduh tema dan plugin ke blog saya, dan memperbaruinya bila perlu. Izin yang tepat tampaknya agak bertentangan dengan preferensi ini.

Saya telah mengumpulkan sedikit detail di sana-sini, tetapi saya ingin melihat jawaban yang lebih pasti, jika ada: apa pengaturan yang disukai dengan anggukan keamanan? Izin apa yang harus ada, pengguna apa yang harus menjalankan situs, dll.

Grant Palin
sumber

Jawaban:

10

Jika Anda memiliki akses FTP ke server Anda, pengaturan paling aman adalah tidak memiliki tema atau direktori plugin yang dapat ditulis oleh server web Anda dan sebaliknya memiliki file pembaruan WordPress menggunakan FTP. Ketika Anda pergi untuk memperbarui plugin, WordPress akan meminta Anda untuk rincian FTP Anda.

Metode FTP jauh lebih lambat daripada menulis file langsung, tetapi jauh lebih aman karena skrip nakal tidak akan dapat memodifikasi file Anda.

Viper007Bond
sumber
5
SFTP bahkan lebih baik
Ashley G
3
FTP dapat diterima secara internal, tetapi membuat saya gugup melalui internet; karena mengirim kata sandi melalui teks biasa. Saya mentransfer melalui SFTP / SSH, saya merasa lebih nyaman memindahkan file melalui saluran aman. Saya juga melarang izin menulis untuk pengguna server web.
JM Becker
8

Seperti yang dicatat @ Viper007Bond, memperbarui inti, plugin, dan tema Anda melalui mekanisme pembaruan bawaan cukup aman, sejauh izin file berjalan, karena mereka dapat menggunakan kredensial pengguna Anda yang sebenarnya. Untuk keamanan maksimum, Anda ingin memastikan bahwa Anda menginstal ekstensi PHP SSH2 . Metode pemasangan (jika mungkin) dapat bervariasi dari host-ke-host, jadi jika belum ada, Anda mungkin perlu meminta layanan hosting, atau melakukan beberapa Googling.

Banyak layanan hosting bersama akan digunakan suexecdalam pengaturan Apache mereka, sehingga layanan web berjalan sebagai pengguna yang sebenarnya. Ini menghilangkan sebagian besar masalah izin dan membantu melindungi file Anda dari pengguna lain di server. Namun, dalam kasus di mana Apache berjalan sebagai pengguna terpisah, jika Anda ingin mengunggah file ke WordPress, Anda harus membuka izin pada direktori unggah.

Dalam hal ini, Anda mungkin ingin wp-content/uploadsdirektori Anda memiliki 0713izin, (AKA rwx--x-wx). Hal ini memberikan izin penuh kepada pemilik direktori, grup mereka dapat membaca file jika mereka mengetahui path lengkap, dan yang lain (termasuk server web) dapat membaca file yang mereka tahu path dan dapat membuat / menulis file.

Beberapa plugin caching juga berharap memiliki wp-content/cachedirektori (atau yang serupa) tersedia yang dapat mereka tulis. Saran izin yang sama akan berlaku untuk itu.

Terakhir, untuk permalink cantik, WordPress harus dapat memodifikasi .htaccessfile, kecuali jika Anda berencana untuk memperbaruinya secara manual. Dalam hal ini, Anda menginginkan 0646mode file. Namun, setelah Anda menetapkan struktur permalink Anda, Anda biasanya tidak perlu mengubahnya lagi, sehingga Anda bisa mematikan izin menulis tambahan, dan mengaturnya 0644. Kadang-kadang, plugin atau peningkatan inti mungkin memerlukan akses ke sana, dan Anda dapat mengaktifkan sementara izin menulis kembali untuk itu, lalu matikan kembali.

Semua file lain harus memiliki 0644izin. Direktori seharusnya 0711jika Anda ekstra-paranoid, tetapi itu dapat mengganggu plugin apa pun yang perlu mendapatkan daftar file dari direktori. Dalam hal ini, atau jika Anda tidak cukup paranoid, gunakan 0755, yang akan memungkinkan orang lain untuk membaca, tetapi tidak menulis.

Sebagian besar ini terutama menjadi perhatian jika Anda menggunakan shared hosting. Jika Anda memiliki server khusus (termasuk VPS), tanpa pengguna lain yang memiliki akses ssh / ftp, maka Anda dapat lebih santai. Saya tidak berarti bahwa Anda hanya harus membuat segalanya secara terbuka ditulis, tapi Anda mungkin bisa saja mempercayai default sistem, yang mungkin akan 0755izin pada direktori bukan 0711.

Jika itu merupakan opsi, dapatkan sertifikat SSL yang diinstal untuk situs tersebut, dan setelah Anda menguji apakah Anda dapat mengakses situs httpsAnda, Anda dapat memaksa SSL untuk login admin dan akses dengan menambahkan baris-baris ini ke wp-config.phpfile Anda , tepat sebelum ' Hentikan pengeditan komentar:

define('FORCE_SSL_ADMIN', true);
define('FORCE_SSL_LOGIN', true);
Dougal Campbell
sumber