it-swarm-id.com

Langkah-langkah untuk Menyembunyikan Fakta sebuah Situs Menggunakan WordPress?

Saya memiliki situs web yang kami coba diskusikan tentang fakta bahwa kami menggunakan WordPress. Langkah apa yang bisa kita ambil untuk membuatnya kurang jelas?

EDIT- Catatan keamanan penting:

Harap mengerti bahwa melakukan ini dengan sempurna tidak mungkin sesuai Mark answer , jadi jangan mengandalkan ini sebagai langkah keamanan.

141
Casebash

Hadiah WordPress terbesar adalah di antara tag <head> </head>.

Contoh output konten kepala WordPress oleh The Twentyten Theme dan cara menghapus:

<link rel="profile" href="http://gmpg.org/xfn/11" /> 

Hapus langsung dari header.php

 <link rel="stylesheet" type="text/css" media="all" href="http://example.com/wp-content/themes/twentyten/style.css" /> 

Sembunyikan WordPress dengan memanggil stylesheet Anda dari lokasi lain dan ubah direktori konten-wp. WordPress mengharuskan tema Anda untuk memasukkan beberapa informasi dasar di bagian atas style.css (style.css harus ada di direktori root tema). Anda harus membuat CSS alternatif dan menyebutnya dari kepala Anda. WordPress tidak mengharuskan Anda untuk menggunakan style.css tema itu hanya mengharuskannya berada di direktori tema.

Hapus langsung dari header.php

<link rel="alternate" type="application/rss+xml" title="Example Blog &raquo; Feed" href="http://example.com/feed/" /> 
<link rel="alternate" type="application/rss+xml" title="Example Blog &raquo; Comments Feed" href="http://example.com/comments/feed/" />    
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://example.com/xmlrpc.php?rsd" /> 
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://example.com/wp-includes/wlwmanifest.xml" /> 
<link rel='index' title='Example Blog' href='http://example.com/' /> 
<meta name="generator" content="WordPress 3.1-alpha" /> 

Untuk menghapus tautan ekstra ini, Anda dapat menambahkan filter ke functions.php

// remove junk from head
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'index_rel_link');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'feed_links_extra', 3);
remove_action('wp_head', 'start_post_rel_link', 10, 0);
remove_action('wp_head', 'parent_post_rel_link', 10, 0);
remove_action('wp_head', 'adjacent_posts_rel_link', 10, 0);

Anda dapat mengubah direktori plugin Anda dan direktori konten-wp Anda di file wp-config.php Anda tetapi Anda bisa memiliki beberapa masalah jika tema atau plugin apa pun tidak menggunakan metode yang tepat untuk memanggil file.

define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/new-wp-content' );

Setel WP_CONTENT_URL ke URI lengkap direktori ini (tanpa garis miring), mis.

define( 'WP_CONTENT_URL', 'http://example/new-wp-content');

Setel WP_PLUGIN_DIR opsional ke jalur lokal lengkap dari direktori ini (tanpa garis miring), mis.

define( 'WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'] . '/new-wp-content/new-plugins' );

Setel WP_PLUGIN_URL ke URI lengkap direktori ini (tanpa garis miring), mis.

define( 'WP_PLUGIN_URL', 'http://example/new-wp-content/new-plugins');

PLUGINS

Perlu diketahui bahwa beberapa plugin seperti Akismat, SEO All-in-One, W3-Total-Cache, Super Cache, dan banyak lainnya menambahkan komentar ke output HTML. Sebagian besar mudah dimodifikasi untuk menghapus komentar tetapi perubahan Anda akan ditimpa setiap kali plugin diperbarui.

wp-termasuk

Direktori wp-include menampung jquery dan berbagai file js lainnya yang akan dipanggil tema atau plugin menggunakan wp_enqueue_script (). Untuk mengubahnya, Anda harus membatalkan pendaftaran skrip WordPress default dan mendaftarkan lokasi baru. Tambahkan ke functions.php:

function my_init() {
    if (!is_admin()) {
        // comment out the next two lines to load the local copy of jQuery
        wp_deregister_script('jquery');
        wp_register_script('jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js', false, '1.3.2');
        wp_enqueue_script('jquery');
    }
}
add_action('init', 'my_init');

Ini perlu dilakukan dengan setiap skrip yang digunakan oleh tema atau plugin Anda.

126
Chris_O

Satu bit yang sering terlewatkan - hapus readme.html di root WordPress. Itu tidak hanya mengidentifikasi instalasi sebagai WP tetapi juga memiliki versi yang tepat. Dan jangan lupa untuk mengulangi pembaruan.

Pertanyaan Terkait: Cegah akses atau hapus readme.html otomatis, license.txt, wp-config-sample.php

45
Rarst

Saya selalu menggunakan metode Roots Theme .
Tetapi menerapkannya pada ThemeJungle yang ada di luar sana biasanya sakit kepala besar.

Jadi, mulailah bermain dengan konstanta WP_CONTENT_*. Yang saya percaya adalah metode rawan kesalahan jauh lebih sedikit dan ini adalah apa yang saya kerjakan sekarang:

safari activity window
/m adalah folder uploads, /t adalah folder themes dan /t/t adalah folder tema aktif. Situs ini tidak rumit, sehingga hanya sedikit aset yang dimuat ...


WP_CONTENTLESS

wp-config.php

Mengatur wp-content ke root (/public_html/) situs.

/** 
 Inside WP_CONTENT, the following folders should exist: 
 /languages , /mu-plugins , /plugins , /themes , /upgrade , /uploads  

 The WP_CONTENT_* definitions bellow REMOVE the existence of the /wp-content folder 
 and makes its contents reside in the ROOT of your site

 UTTERMOST attention is necessary when doing file maintenance activities in the server (i.e.: WP upgrades, new Webmaster...), 
 as the Themes and Plugins folders are meant to be renamed to /t and /p (serious candidates for unthoughful removal)

 PLEASE note:
 - we change the Plugins folder in WP_PLUGIN_* definitions
 - the Themes folder is changed by a MustUse Plugin 
   (/mu-plugins/set-extra-themes-folder.php)
 - the Uploads folder is changed in WordPress settings page 
   (http://example.com/wp-admin/options-media.php)
 - the hardcode path to be used in WP_CONTENT_DIR and WP_PLUGIN_DIR can be checked using an action inside the set-extra-themes-folder Plugin (check the comments in this file)
*/
define( 'WP_CONTENT_DIR', '/www/htdocs/username/public_html' );
define( 'WP_CONTENT_URL', 'http://www.example.com' );

define( 'WP_PLUGIN_DIR', '/www/htdocs/username/public_html/p' );
define( 'WP_PLUGIN_URL', 'http://www.example.com/p' );

Saya sudah menanyakannya di [wp-hacker] - Adakah kekurangan dalam pengaturan WP_CONTENT_DIR (dan URL) ke DOCUMENT_ROOT? , di mana John Blackbourn1, Mike Little2 dan Otto3 cukup ramah untuk memberi saran:

1
Saya memiliki struktur ini aktif di situs selama 18 bulan terakhir dan belum melihat masalah. Seperti halnya perubahan apa pun pada lokasi direktori konten, Anda harus mengecek plugin yang Anda tambahkan ke situs jangan berasumsi bahwa direktori konten ada di wp-content.

2
Ada beberapa diskusi di internet yang $_SERVER['DOCUMENT_ROOT'] mungkin rentan terhadap peretasan. Dalam hal ini sangat berbahaya karena ada banyak tempat yang require() atau include()WP_CONTENT_DIR. 'sesuatu';

3
Ada beberapa kasus di mana konten dalam $_SERVER dapat sepenuhnya aman, tetapi untuk tujuan keamanan, lebih baik untuk selalu memperlakukannya sebagai data yang tidak dipercaya. Untuk kasus khusus ini, hardcode direktori.


Folder Tema Baru

/mu-plugins/set-extra-themes-folder.php

Karena tidak ada konstanta WP_THEMES_*, kita memerlukan fungsi register_theme_directory () to "Daftarkan direktori yang berisi tema."
Mencoba mengatur direktori tambahan ke root tetapi hasilnya lucu (yaitu: itu tidak berhasil).

<?php
/*
    Plugin Name: Set Extra Themes Folder
    Version: 1.0
    Description: Allows the directory - http://example.com/t - to be used as an extra theme's directory
    Plugin URI: http://wordpress.stackexchange.com/questions/1507
    Author: brasofilo
    Author URI: http://rodbuaiz.com
*/


/**
 * Remove the comment from the following line to know the correct path to put in register_theme_diretory()
*/
//add_action( 'admin_head', 'brsfl_alert_directory_path' );

function brsfl_alert_directory_path()
{
    echo '<script type="text/javascript">
        alert("Directory: '.$_SERVER['DOCUMENT_ROOT'].'");
    </script>';
}


/**
 * The following will enable the directory "t" to be used as an EXTRA Themes directory
*/
register_theme_directory( '/www/htdocs/username/public_html/t' );


/**
 * De-registering default scripts in wp-includes for CDN ones
*/
add_action('init', 'brsfl_init_scripts');

function brsfl_init_scripts() 
{
    if ( !is_admin() ) 
    {
        wp_deregister_script( 'jquery' );
        wp_deregister_script( 'swfobject' );
        wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js', false, '1.7.1' );
        wp_register_script( 'swfobject', 'https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js', false, null, true );
        wp_enqueue_script( 'jquery' );
        wp_enqueue_script( 'swfobject' );
    }
}

Folder Unggahan

/wp-admin/options-media.php

Alih-alih http://example.com/uploads, itu akan menjadi http://example.com/m.
Hapus centang Organize my uploads into... akan memberikan tampilan WPless ke URL aset.
Jika situs ini aktif, pencarian/penggantian harus dilakukan dalam database dan file harus dipindahkan.
uploads folder settings


Konten Plugin dan Head

Rujuk ke Cris_O Jawab di T&J ini.


Readme.html

Rujuk ke Rarst Jawab dalam T&J ini.


Langkah Lain

Seperti biasa, tema ThemeJungle dapat meminta peretasan spesifik dalam tema tersebut.
Seperti ... TimThumb tidak bekerja (!!! lol !!!).

21
brasofilo

Satu-satunya jawaban yang valid: MUNGKIN

Begitu banyak jawaban pilihan tinggi .... waktu untuk meluruskan. Ya, kebenarannya adalah bahwa hal itu hampir tidak mungkin dan bahkan jika memang demikian, hidup mungkin terlalu pendek untuk diusahakan. Jawaban apa pun, yang mempromosikan langkah-langkah untuk menyembunyikan WP hanya membuang-buang waktu Anda dan akan menyesatkan Anda berpikir bahwa Anda menyembunyikan WP Anda (itu tidak masuk akal).

1) Masalahnya bukan url wp-* yang jelas, meta generator dll. Masalah yang sulit adalah dengan pola yang terkait dengan wordpress bahwa sistem yang ditanamkan di rumah tidak akan repot untuk mengimplementasikan seperti halaman penulis, tahun, bulan, halaman hari, gunakan p = nnn sebagai parameter yang valid, memiliki formulir komentar dengan kelas komentar wordpress, struktur dan nama tautan, dan kemudian ada promosi sendiri dari plugin caching dan SEO yoast dan mungkin banyak plugin lain yang Anda lihat hanya ketika Anda memeriksa HTML itu sendiri .

2) Ada metode tak terhitung lainnya yang menunjukkan keberadaan WP (dan Anda tidak bisa mengalahkan itu):

  • Bahkan header respons php (seperti dicatat oleh Dan Gayle di bawah jawaban saya) mengembalikan header WP yang spesifik.

  • Siapa pun dapat meminta kueri dari puluhan file .php root: site.com/wp-cron.php atau site.com/xmlrpc.php (atau dll, yang tidak dapat Anda sembunyikan) dan jawaban header adalah 200 alih-alih 404 not found.

  • siapa pun dapat memeriksa memiliki titik akhir json untuk mendapatkan WP jawaban spesifik.

  • Di dalam halaman HTML, banyak file .css atau .js memiliki frasa tertentu, yang jelas merujuk ke WP.

  • Di dalam halaman HTML, mudah untuk menemukan elemen/kelas css, seperti <div class="entry-content post-14"... atau dll (yang merupakan petunjuk langsung bahwa struktur yang digunakan adalah dari WP)

  • Di dalam halaman HTML, Anda akan dengan mudah melihat folder uploads, atau bahkan jika Anda mengganti nama dengan hardcoding, maka bagian tanggal seperti uploads/2018/05/image.jpg (atau bahkan image-315x225.jpg) menunjukkan struktur WP khas.

  • karena banyak situs sekarang dibangun menggunakan MultiSite, ia menggunakan mis. /site/2 di tautan ...

  • ping ke plugin/tema readme apa saja (semuanya mengandung), seperti plugin-name/readme.txt, status pengembalian 200.

  • dan banyak, banyak, banyak hal lain yang Anda (atau bahkan profesional) tidak dapat sembunyikan dan hanya akan menghabiskan hari-hari Anda!


kesimpulan

Dan bahkan jika Anda berupaya membereskan semuanya yang menunjukkan bahwa ini adalah wordpress, Anda mungkin perlu mengulang atau setidaknya memeriksa ulang setelah setiap plugin atau peningkatan inti. Hidup ini terlalu singkat untuk itu.

Anda mungkin menyesatkan beberapa diletant, tetapi Anda tidak bisa bersembunyi dari inspektur yang baik. Jika ini dilakukan sebagai tindakan keamanan maka itu adalah keamanan oleh ketidakjelasan yang selalu salah, dan jika Anda hanya malu menggunakan wordpress, maka izinkan saya memberi tahu Anda sesuatu - tidak ada yang peduli, dan bahkan sedikit yang mungkin tidak akan tahu bagaimana mengatasinya sendiri.

Satu-satunya hal yang harus Anda perhatikan, adalah Anda melindungi WP sebanyak yang Anda bisa dan memantau pembaruan rutinnya.

12
Mark Kaplun

Anda dapat memiliki WordPress di satu server dan mengorek konten Anda dari yang lain hanya termasuk konten yang Anda butuhkan.

Jika Anda memerlukan RSS, Anda harus melakukan hal yang sama dengan itu.

Secara efektif itu akan seperti melayani halaman statis dari proxy atau CDN, tetapi hanya bit yang ingin Anda layani. Anda kemudian bisa juga menggunakan sistem komentar berbasis javascript seperti Disqus.

Penggunaan sumber daya sangat rendah, karena di sini tidak ada database di server yang menyajikan konten.

10
AndyBeard

Anda dapat membuat alamat khusus untuk login ke blog Anda. Dengan tidak menggunakan jalur klasik "myblog.com/wp-admin" untuk sampai ke dasbor Anda Halaman ini akan membantu Anda dengan membuat stealth login, ini juga baik untuk langkah-langkah keamanan.

Jadi ppl yang menambahkan wp-admin ke blog Anda, tidak akan bisa menebak :)

7
mireille raad

Selain yang di atas, Anda perlu mengunci akses ke berbagai file dan direktori wp*. Jika seseorang ingin melihat apakah Anda menjalankan WP mereka dapat menebak apakah Anda memiliki wp-settings.php atau jika mereka dapat mengakses beberapa direktori. Mengembalikan 403 tidak cukup karena memberi tahu pengguna bahwa sumber daya itu ada; mereka hanya tidak memiliki akses ke sana.

Saya bukan ahli Apache jadi saya bertanya pertanyaan ini lebih pada serverfault.

5
Avery Chan

Ini bisa sulit dicapai jika Anda baru mengenal php dan mod_rewrite. Saya sarankan agar Anda memeriksa bagian dari tanggapan saya. Atau coba sendiri, Anda dapat menggunakan sesuatu seperti ini untuk menyembunyikan struktur path wp-content/plugins:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^modules/(.*) /wp-content/plugins/$1 [L,QSA]
</IfModule>

Ini akan mengubah jalur ke/modul. Gunakan sesuatu yang serupa untuk struktur lain, Anda mungkin memerlukan penulisan ulang lanjutan, lihat http://httpd.Apache.org/docs/current/mod/mod_rewrite.html untuk informasi mod_rewrite tambahan.

Jika lebih suka sesuatu di luar kotak, ada beberapa plugin yang bagus, beberapa komersial, juga gratis di repositori WordPress, saya sarankan untuk mencoba WP Sembunyikan & Peningkat Keamanan . Ini termasuk banyak hal dan membantu mengubah segalanya untuk membuat WordPress Anda tidak dapat dikenali. Berikut adalah beberapa fitur kode:

  • Url Admin Kustom
  • Url Admin Kustom
  • Blokir Url admin default
  • Blokir semua akses folder langsung untuk menyembunyikan struktur sepenuhnya
  • Nama file wp-login.php kustom
  • Blokir wp-login.php default
  • Blokir wp-signup.php default
  • Blokir XML-RPC API
  • Jalur XML-RPC baru
  • URL tema yang dapat disesuaikan
  • Url Tema anak baru
  • Ubah nama file gaya tema
  • Kustom wp-include
  • Blokir jalur wp-include default
  • Blokir konten-wp
  • URL pengaya ubahsuaian
  • Perubahan URL plugin individual
  • Blokir jalur plugin default
  • URL unggahan baru
  • Blokir URL unggahan default
  • Hapus versi wordpress
  • Blok Meta Generator
  • Buang emoji dan kode javascript yang diperlukan
  • Hapus tag pingback
  • Hapus wlwmanifest Meta
  • Hapus rsd_link Meta
  • Hapus wpemoji

dan masih banyak lagi..

3
WP-Silver

Jangan lupa bahwa banyak informasi header http yang dikirimkan bersama dengan permintaan Anda dapat mengidentifikasi situs Anda berjalan di WordPress. Misalnya, jika Anda memeriksa tajuk di situs berikut, jelas:

$ curl -I http://www.rollingstones.com/
Server: WP Engine/5.0

$ curl -I http://www.mattcutts.com
X-Powered-By: W3 Total Cache/0.9.1.3

$ curl -I http://blogs.reuters.com/us/
WP-Super-Cache: Served supercache file from PHP

Beberapa di antaranya ditetapkan oleh server, beberapa ditetapkan oleh plugin, jadi tidak ada cara bagi saya untuk mengatakan bagaimana cara menghapus 100% darinya, tetapi jika Anda menggunakan PHP 5.3 Anda dapat menggunakan

header_remove("X-Foo"); ( http://www.php.net/manual/en/function.header-remove.php )

untuk menghapus header PHP yang diketahui sebelum konten Anda dikeluarkan. Saya tidak bisa mengatakan dengan pasti ke mana harus menempatkan ini (mungkin orang lain dapat memberikan info itu), tetapi mungkin aman untuk meletakkannya di bagian paling atas index.php Anda SEBELUM ada konten yang dikirim ke browser.

3
Dan Gayle

Sebagian besar jawaban berkonsentrasi pada mengaburkan WordPress dalam kode sumber halaman, tetapi bahkan sebelum itu WP telah memberikan dirinya sendiri di header http dari instalasi standar. Coba saja situs Anda sendiri di situs seperti web-sniffer (berpura-pura IE 6 dan minta header http 1.0) dan Anda akan melihat bahwa di antara pengembalian adalah:

<http://www.example.com/wp-json/>; rel="https://api.w.org/"

Yang terakhir adalah tautan ke Wordpress.org API . Itu ada di sana sejak REST API dimasukkan dalam WP 4.4. Anda dapat menghapusnya dengan baris ini tepat di awal functions.php Anda:

remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );

Banyak plugin, seperti Jetpack untuk tautan singkatnya, juga dapat menyisipkan tautan di header http. Mereka dapat melakukannya, karena WP memiliki HTTP API , yang memungkinkan Anda untuk memanipulasi header. Anda bisa menggunakan antarmuka ini untuk menghapus semua pengaturan tajuk oleh plugin jika Anda menambahkan tindakan Anda cukup terlambat dalam proses.

Akhirnya, Anda dapat menggunakan antarmuka header .htaccess untuk mencegat apa pun yang sedang dilakukan [WP. Misalnya, Anda dapat mencegah taut Link dikirim dengan menyertakan baris ini:

<IfModule mod_headers.c>
Header unset Link
</IfModule>
2
cjbj

Saya tidak ingin mengulangi opsi pengkodean karena sudah dibahas secara mendalam, opsi lain yang saya tahu berfungsi adalah menggunakan plugin yang menyembunyikan wp. Saya telah menggunakan plugin ini sebelumnya untuk memenuhi standar. Ini disebut sembunyikan WordPress saya.

2
NJENGAH

Anda dapat menyesuaikan tema untuk mengecualikan semua informasi WordPress. Hapus juga widget meta dan widget apa pun yang akan menampilkan informasi tentang platform.

Secara pribadi, saya lebih suka menunjukkan rasa terima kasih saya dengan menunjukkan bahwa saya menggunakan WordPress.

0
James