Bagaimana cara mengaburkan instalasi Wordpress saya melalui htaccess?

9

(Saya sadar bahwa keamanan melalui ketidakjelasan tidak disarankan).

Saya mencoba menyembunyikan fakta bahwa saya menggunakan Wordpress. Ini posting membantu, tapi hanya membahas isi (semacam). Saya tertarik memiliki yang berikut terjadi:

  1. Pengguna mencoba mengakses url apa pun wp*sebagai substring melalui browser mereka.

    Hasil: Diarahkan ke 404 halaman.

  2. Pengguna blog / administrator tahu untuk masuk, mereka harus masuk http://example.com/blogin/.

    Hasil: apache mengarahkan mereka kehttp://example.com/wp-admin/.

  3. Jika pengguna mencoba mengakses secara langsung wp-admindari peramban, mereka akan dikirim ke # 1.

    Hasil: Diarahkan ke 404 halaman.

Hal-hal yang telah saya lakukan sejauh ini

  1. Saya perhatikan untuk instalasi WordPress standar bahwa saya dapat mengakses wp*file di direktori root (relatif) dari instalasi WP. Khususnya wp-settings.phpbermasalah karena memberikan informasi tentang pengaturan saya. Jika pengguna mengaksesnya, itu akan memuntahkan beberapa kesalahan PHP dan mengungkapkan bagian dari struktur direktori. Saya mengedit file php.ini saya untuk display_errorsmematikan. Sekarang mengakses http://example.com/wp-settngs.phpmenampilkan halaman kosong.

  2. Ini sendiri tidak ideal karena mengungkapkan yang wp-settings.phpada. Bahkan, mengakses semua wp*file berbeda dimungkinkan (dengan hasil yang berbeda). Saya kemudian meletakkan yang berikut ini di file htaccess saya:

          RewriteEngine On
          RewriteBase /
          RewriteCond %{PATH_INFO} wp* [NC]
          RewriteRule .* - [F]
    

    Ini bekerja dengan baik! Apa pun dengan a wp*dialihkan ke halaman 404 khusus saya. Tetapi sekarang saya tidak dapat mengakses halaman admin saya.

  3. Aku mencoba memasukkan baris ini ke dalam kode di atas: RewriteRule ^blogin wp-admin [NC,R,L]. Seharusnya tepat setelah itu RewriteBasetetapi ini tidak berhasil.

  4. Saya mencoba melakukan:

    <Directory /home/example/wp*> 
     Order Allow, Deny 
     Allow from example.com 
     Deny from all 
    </Directory> 
    

    berharap bahwa referer dari situs saya (melalui penulisan ulang aturan) akan dapat mengakses wp-admin, tetapi bukan seseorang dari luar. Ini juga tidak berhasil. apache mengeluh bahwa Anda tidak dapat menggunakan arahan ini dari htaccess.

Saya sudah membaca dokumentasi apache; Saya mengerti konsep-konsepnya, secara teori, tetapi saya butuh bantuan praktis.

EDIT: Saya mencari solusi yang menggunakan .htaccess daripada httpd.conf karena setup khusus saya membuat menggunakan httpd.conf tidak konsisten.

Avery Chan
sumber
Sudahkah Anda mencoba mengubah nama semua file wp * ke awalan yang berbeda serta mengubah semua referensi ke file tersebut? Saya pikir ini akan menjadi hal yang paling mudah untuk dilakukan. Tentu saja, Anda bisa menggunakan penulisan ulang URL, tetapi Anda harus memastikan bahwa semua tautan juga tidak menggunakan nama wp *, yang (menurut saya) sangat mirip dengan saran asli.
LazyOne
Saya pikir salah satu manfaat penulisan ulang URL adalah bahwa sumber daya yang diminta dapat dipetakan kembali ke awalan lain ... Saya berharap saya bisa melakukan ini tanpa mengganti nama semua file (yang merupakan titik untuk melalui ini) ...
Avery Chan

Jawaban:

8

TLDR; Tidak mungkin mengaburkan WordPress dengan hanya menggunakan arahan dalam file .htaccess Anda.

Sekarang datang kisah celaka dan kengerian. Teman kami, fbh benar tentang kesulitan menyembunyikan WordPress, itu bukan untuk pengecut berperut kuning. Arr! Inilah detail petualangan (salah) ini. Kamu diperingatkan!

Motivasi

Saya salah satu dari mereka yang menyukai hal-hal yang sempurna. Saya akan menghabiskan waktu untuk merekayasa sesuatu menjadi 'cara yang benar'. Salah satu hal yang saya tidak suka tentang pengaturan WordPress default adalah bahwa pengguna dapat mengetikkan http://ex.com/wp-settings.php dan kemudian semua jargon php ini akan dimuntahkan di semua tempat. Saya akhirnya bisa mematikan kesalahan melalui PHP tapi itu mengarah pada keinginan yang lebih besar untuk hanya memiliki hal-hal yang dibuat karena menjadi sumber daya yang dapat dilokalisasi dari server ... dan segala sesuatu yang lain akan 404 / 3'ified ke halaman pencarian kustom kami. Setelah itu saya mendapat ide bahwa saya ingin benar-benar menyembunyikan kerangka dasar (yaitu WP) ... lagian ... jika Anda ingin menyembunyikan WP itu mungkin. Tapi ini sangat sulit.

Langkah menuju malapetaka Anda

  1. Ubah pengaturan PHP Anda dengan tepat. (mis. matikan kesalahan tampilan) Anda mungkin berpikir ini tidak perlu karena jika kita menggunakan .htaccess untuk mengubah rute hal-hal, orang tidak akan melihat kesalahan karena mereka tidak dapat mengakses sumber daya yang menyebabkan kesalahan (saya melihat Anda wp-settings.php). Tetapi kesalahan dapat terjadi pada halaman yang ditampilkan, jadi Anda pasti ingin mereka mati. Hanya karena WP_*arahan ditetapkan tidak selalu berarti bahwa segala sesuatu akan bekerja seperti yang Anda pikirkan. Saya menemukan bahwa di server saya, saya harus mengatur display_errors menjadi FIRST palsu, karena WP_DISPLAY_ERRORS mengasumsikan bahwa pengaturan default salah.

    Mengontrol pengaturan PHP ini mungkin sesuatu yang sederhana seperti menempatkan arahan dalam file .htaccess Anda. Atau, dalam kasus saya, serumit membuat handler CGI dan kemudian meletakkan file php.ini di sana. YMMV tergantung pada pengaturan Anda.

  2. Hapus semua akses ke file / direktori dengan wp-awalan. Idenya adalah bahwa penyebaran WP Anda adalah tentang konten Anda, bukan tentang WP (kecuali jika itu khusus difokuskan pada WP). Tidak masuk akal jika orang ingin melihat apa yang dimiliki http; // ex.com/wp-cron.php ... kecuali mereka yang tidak bagus. Saya menyelesaikan ini melalui ini:

     # If the resource requested is a `wp-*` file or directory, poop to a 403. 
     RewriteCond %{REQUEST_FILENAME} wp-.*$ [NC] 
     RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
     RewriteCond %{REQUEST_FILENAME} -f [NC,OR] 
     RewriteCond %{REQUEST_FILENAME} -d [NC] 
     RewriteRule .* - [F,L] 
    
  3. Pelajari cara melewati mordor Dengan menghapus semua akses, wp-*Anda tidak dapat lagi mendapatkan akses ke bagian administrasi WP. Itu sangat menyebalkan. Selain downer itu, Anda baru menyadari bahwa Anda tidak tahu apa yang RewriteCond %{ENV:REDIRECT_STATUS} ^$sebenarnya terjadi. Yah, yang saya coba lakukan adalah memberi diri saya 'rahasia' pintu belakang ke halaman admin WP. Saya menggunakan kode ini:

     # If the resource requested is 'mordor' (with or without an ending
     # slash) do a URL rewrite to `wp-login.php`. 
     RewriteCond %{REQUEST_URI} mordor/?$ [NC]
     RewriteRule mordor/?$ /wp-login.php [NC,L]
    

    Jadi URL: http://ex.com/mordor akan membawa kita ke halaman login. Alasan mengapa kami memiliki REDIRECTbaris pada langkah di atas adalah karena URL ini ditulis ulang menjadi wp-*URL, kami tidak ingin aturan penulisan ulang pertama mendapatkannya. Karena sedang dialihkan secara internal, REDIRECT_STATUSakan diatur dengan benar dan itu tidak akan mendorong kita ke tanah 403/4.

  4. Hapus konten-wp Wordpress.stackexchange memiliki artikel bagus tentang menghapus konten-wp. Anda harus mendefinisikan kembali beberapa konstanta WP dan itu cukup banyak berfungsi. Anda juga harus mengalihkan semua akses dari wp-contentke 'konten apa pun`. Ini mungkin tidak akan menjadi masalah jika ini adalah penyebaran yang bersih. Jika Anda memodifikasi penyebaran yang sudah ada, Anda harus melakukan beberapa hal tambahan.

  5. Menulis ulang URL menjadi konten-wp opsional RewriteRule (.*)(wp-content)(.*) $1whatever-content$3 [NC,R,L] . Ini berlaku di file .htaccess Anda. Jika pengguna Anda mencoba mengakses beberapa konten lama melalui wp-contentURL, itu akan dialihkan ke sini.

  6. Raih dan ganti semua referensi ke konten-wp di DB opsional Anda . Anda masih memiliki wp-contentdi database Anda. Jika Anda ingin WP gratis, Anda harus menyingkirkan barang-barang itu. Saya mengekspor / mysql membuang database saya, melakukan pencarian dan mengganti pada wp-contentstring ke string baru. Anda mungkin berkata ... mengapa saya harus melakukan ini jika apache akan menulis ulang URL saya? Masalahnya adalah bahwa kode sumber akan berisi referensi ini jadi jika Anda benar-benar tertarik mengaburkan WordPress, Anda perlu melakukan ini. Catatan: Pada titik ini saya seharusnya berhenti dan menerima kenyataan bahwa ini tidak akan berhasil. Tapi saya ingin Mr. T mengasihani saya.

  7. Ganti semua referensi ke wp-includesdan wp-admindi sumber. Banyak fungsi WordPress tergantung pada dua direktori ini: wp-includesdan wp-admin. Ini berarti nama direktori ini di-hardcode dalam kode sumber. Ini berarti bahwa Anda harus membuat direktori baru (karena PHP menggunakan sistem file OS yang mendasarinya, bukan apache) untuk mengaksesnya dan kemudian MENULIS INI ke dalam html yang dipancarkan. Ini terlalu banyak masalah. Aku cepat menyerah dan pergi ke kamar mandi untuk buang air besar.

Pelajaran

Tentu, saya bisa saja membaca http://codex.wordpress.org/Hardening_WordPress dan mengikuti langkah-langkah itu. Tetapi saya menginginkan situs yang sempurna. Sekarang saya hanya ingin semua jam itu kembali. Hal terbesar yang mencegah saya untuk berhenti adalah bahwa saya tidak membaca di mana pun di internet bahwa ini banyak pekerjaan dan hampir tidak mungkin dilakukan. Sebaliknya saya membaca tentang orang-orang yang mencoba melakukannya tanpa rasa apakah mereka berhasil atau tidak. Jadi, bagi diri saya dulu, yang akan saya kirimi ini melalui Apple Time Machine, tolong jangan mencoba dan mengaburkan WordPress. Itu tidak layak.

Avery Chan
sumber
Yah Avery, saya juga orang yang ingin menjadi sempurna .. Pertama saya ingin membuat multisite wordpress dengan menyembunyikan fakta saya menggunakan wordpress. Saya telah melalui banyak masalah dan akhirnya membatalkan ide multisite. Karena banyak plugin tidak mendukung multisite. Poin 7 Anda menunjukkan Anda diganti wp-includesdan wp-adminteks secara manual. Saya cukup yakin Anda melihat setiap file dan diganti secara manual. Itu karena Anda melewatkan beberapa perangkat lunak berguna yang berguna. Misalnya Anda bisa mencoba grepwin yang membuat pekerjaan itu lebih mudah
Giri
4

Jika Anda mencoba menyembunyikan bahwa Anda menggunakan wordpress karena cracker, maka Anda benar-benar harus melakukan beberapa pekerjaan. Jika Anda melakukan trik wp *, bagaimana dengan konten-wp dan termasuk-wp? Tanpa bisa menjangkau mereka, Anda akan merusak halaman dan itu akan terlihat mengerikan.

Juga, ada begitu banyak hal di Wordpress sehingga ini benar-benar membutuhkan beberapa pekerjaan - dan Anda kemungkinan besar harus melakukan banyak hal lagi ketika upgrade diinstal. (Karena beberapa pengalihan di Apache tidak akan melakukan trik)

Jika Anda hanya berusaha menyembunyikannya dari Tn. Dan Ny. Semua orang, maka tentu saja Anda harus bisa melakukannya dengan tidak jelas.

Sudahkah Anda membaca panduan "pengerasan Wordpress"? Jika tidak, Anda harus memeriksanya: http://codex.wordpress.org/Hardening_WordPress Ini memberikan pengantar yang bagus untuk banyak hal yang dapat Anda lakukan.

Juga, jika Anda ingin menyembunyikan fakta bahwa Anda menggunakan Wordpress, mengapa menggunakannya?

Frands Hansen
sumber
1. Re: wp-content / wp-termasuk Lihat tautan di posting 2. Saya telah membaca panduan WordPress pengerasan. 3. Pertanyaan terakhir Anda dapat dengan mudah dijawab dengan membaca tautan yang saya posting. Saya tidak berusaha bersikap kasar, tetapi pertanyaan ini tidak ada hubungannya dengan kelebihan teknis dari pertanyaan saya sendiri. Banyak orang menggunakan alat yang berbeda tetapi tidak ingin mengiklankannya. Bagi sebagian orang itu adalah keputusan bisnis.
Avery Chan
0

Coba lakukan konfigurasi Anda di konfigurasi apache. Ini bisa termasuk file seperti /etc/wordpress/htaccess. Ini akan memungkinkan Anda menggunakan Directoryarahan konfigurasi. Namun Anda harus memulai ulang apache untuk memuat perubahan. Gunakan restart yang anggun jika Anda tidak ingin gangguan layanan.

Untuk membatasi akses direktori dengan .htaccessfile, mereka harus berada di direktori yang sesuai. Fungsinya sangat mirip dengan isi dari Directorydirektif konfigurasi. Anda mungkin perlu mengaktifkan .htaccessopsi yang diperlukan dalam konfigurasi apache Anda. Metode ini tidak seefisien menggunakan perintah dalam konfigurasi apache karena perlu sering diulang.

BillThor
sumber
Saya mencari solusi yang tidak memerlukan pengeditan file httpd.conf saya karena itu bisa lebih dari ditulis (saya di virtual private host). Saya akan mengedit pertanyaan dengan tepat.
Avery Chan
@Avry: Anda perlu menempatkan arahan yang akan Anda masukkan dalam konfigurasi <Directory> dalam .htaccessfile di direktori yang cocok. Catatan: Apache menyarankan Anda menggunakan konfigurasi jika memungkinkan. Gunakan kontrol versi untuk menjaga terhadap overwrites.
BillThor