ขั้นตอนในการซ่อนความจริงของไซต์กำลังใช้ WordPress อยู่ใช่ไหม?


142

ฉันมีเว็บไซต์ที่เราพยายามที่จะรอบคอบเกี่ยวกับความจริงที่ว่าเรากำลังใช้ WordPress ขั้นตอนใดที่เราสามารถทำได้เพื่อทำให้เห็นได้ชัดน้อยลง

แก้ไข - หมายเหตุความปลอดภัยที่สำคัญ:

โปรดเข้าใจว่าการทำสิ่งนี้เป็นไปไม่ได้อย่างสมบูรณ์แบบตามคำตอบของ Mark ดังนั้นอย่าพึ่งพาสิ่งนี้เป็นมาตรการรักษาความปลอดภัย


7
ทำไมคุณต้องการซ่อนว่าคุณใช้ Wordpress
Wadih M.

15
@Wadih: เพราะฉันได้รับคำสั่งให้
Casebash

5
นั่นคือการรักษาความปลอดภัยโดยความสับสน หากพวกเขาต้องการจริงๆใครบางคนสามารถสร้างความสัมพันธ์กับพฤติกรรมของคนรุ่นต่อหน้าและพิสูจน์ว่ามันทำงานบนเอ็นจิ้น WordPress
Wadih M.

28
@Wadih M. - "ความปลอดภัยโดยความสับสน"ไม่ใช่เหตุผลเดียวสำหรับเรื่องนี้ หนึ่งในลูกค้าของฉันต้องการเหมือนกัน แต่พวกเขาต้องการเพราะพวกเขาต้องการที่จะขายบริการโฮสต์ของพวกเขาให้กับลูกค้าที่จะหยุดจ่ายเงินดอลล่าร์ถ้าพวกเขาคิดว่า"Heck พวกเขาใช้ WordPress อยู่" ดังนั้นมันจึงเป็นเกมสร้างแบรนด์ / การรับรู้ไม่ใช่เกมความปลอดภัยอย่างน้อยก็สำหรับลูกค้าของฉัน
MikeSchinkel

2
หกปีในหลาย ๆ ไซต์ที่ใช้งาน WordPress ไม่มีใครเชื่อคุณเลย ;-)
cjbj

คำตอบ:


128

ของรางวัล WordPress ที่ใหญ่ที่สุดอยู่ระหว่าง<head> </head>แท็ก

ตัวอย่างการแสดงผลเนื้อหาของ WordPress โดยธีม Twentyten และวิธีลบ:

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

ลบโดยตรงจาก header.php

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

ซ่อน WordPress โดยเรียกสไตล์ชีทของคุณจากที่อื่นและเปลี่ยนไดเรกทอรี wp-content WordPress ต้องการธีมของคุณเพื่อรวมข้อมูลพื้นฐานบางอย่างที่ด้านบนของ style.css (style.css ต้องอยู่ในไดเรกทอรีรูทของธีม) คุณจะต้องสร้าง CSS สำรองและโทรจากหัวของคุณ WordPress ไม่ต้องการให้คุณใช้ชุดรูปแบบ style.css มันเพียงต้องการให้อยู่ในไดเรกทอรีธีม

ลบโดยตรงจาก 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" /> 

ในการลบลิงค์พิเศษเหล่านี้คุณสามารถเพิ่มตัวกรองไปยัง 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);

คุณสามารถเปลี่ยนไดเรกทอรีปลั๊กอินและไดเรกทอรี wp-content ของคุณในไฟล์ wp-config.php ของคุณ แต่คุณอาจมีปัญหาบางอย่างหากธีมหรือปลั๊กอินของคุณไม่ใช้วิธีการที่เหมาะสมในการโทรไฟล์

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

ตั้งค่า WP_CONTENT_URL เป็น URI แบบเต็มของไดเรกทอรีนี้ (ไม่มีเครื่องหมายสแลชต่อท้าย) เช่น

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

ทางเลือกตั้งค่า WP_PLUGIN_DIR เป็นพา ธ แบบเต็มของไดเร็กทอรีนี้ (ไม่มีเครื่องหมายสแลชต่อท้าย) เช่น

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

ตั้งค่า WP_PLUGIN_URL เป็น URI แบบเต็มของไดเรกทอรีนี้ (ไม่มีเครื่องหมายทับ) เช่น

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

PLUGINS

โปรดทราบว่าปลั๊กอินบางอย่างเช่น Akismat, All in One SEO, W3-Total-Cache, Super Cache และอื่น ๆ อีกมากมายเพิ่มความคิดเห็นลงในเอาต์พุต HTML ส่วนใหญ่แก้ไขได้ง่ายเพื่อลบความคิดเห็น แต่การเปลี่ยนแปลงของคุณจะถูกเขียนทับเมื่อใดก็ตามที่ปลั๊กอินได้รับการอัปเดต

WP-รวมถึง

ไดเร็กทอรี wp-include เก็บ jquery และไฟล์ js อื่น ๆ ที่ธีมหรือปลั๊กอินจะเรียกใช้ wp_enqueue_script () หากต้องการเปลี่ยนแปลงสิ่งนี้คุณจะต้องลงทะเบียนสคริปต์ WordPress เริ่มต้นและลงทะเบียนตำแหน่งใหม่ เพิ่มลงใน 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');

สิ่งนี้จะต้องทำกับแต่ละสคริปต์ที่ใช้โดยชุดรูปแบบหรือปลั๊กอินของคุณ


Chris_O : คำตอบยอดเยี่ยม! คุณควรเพิ่มเช่นกันหากพวกเขาใช้ปลั๊กอินหรือชุดรูปแบบเหล่านี้มีการระบุอย่างง่ายดาย; นั่นคือถ้ามีใครบางคนกำลังใช้ปลั๊กอิน akismet หรือ all-in-one-seo แล้วมันก็ยังเป็นของแถมที่ตายไปแล้วโดยคนที่รู้ว่าพวกเขากำลังมองหาอะไร
MikeSchinkel

@ MikeSchinkel True แต่ในเวลาเดียวกันดังนั้น wp-include และ wp-admin ด้วยข้อยกเว้นที่คุณไม่สามารถเปลี่ยนแปลงอย่างใดอย่างหนึ่งหรือไม่สามารถซ่อนได้โดยไม่ จำกัด ฟังก์ชันการทำงานของไซต์
John P Bloch

@ John P โบลช:แน่นอน แต่ผมจะไม่ได้กล่าวว่าแต่ผมจะได้กล่าวและ :)
MikeSchinkel

3
@MikeSchinkel : สำหรับ wp-admin และ wp- รวมถึงคุณสามารถทำบางสิ่งผ่าน apache access control ดังนั้นเพื่อทำให้เส้นทางเหล่านั้นไม่สามารถใช้งานได้สำหรับผู้ใช้รายอื่นจากนั้นผู้ดูแลระบบเช่นนำไปสู่มาตรฐาน 404
hakre

@Chris_O:ชำระเงินregister_theme_directory()ฉันคิดว่าเป็นเรื่องดีที่จะซ่อนธีมจากไดเรกทอรี "wp-content"
hakre

45

หนึ่งบิตที่พลาดบ่อย - ลบreadme.htmlในรูท WordPress มันไม่เพียง แต่ระบุการติดตั้งเป็น WP แต่ยังมีรุ่นที่แม่นยำ และอย่าลืมทำซ้ำในการอัปเดต

คำถามที่เกี่ยวข้อง: ป้องกันการเข้าถึงหรือลบ readme.html, license.txt, wp-config-sample.php อัตโนมัติ


5
จุดดี - นอกจากนี้ยังสามารถใช้. htaccess ของคุณเพื่อปฏิเสธการเข้าถึง readme.html ได้ตลอดเวลาดังนั้นคุณไม่ต้องกังวลกับการลบอีกครั้ง
ทิมมาโลน


21

ฉันเคยใช้วิธีรูทธีมเสมอ
แต่การนำไปใช้กับThemeJungleเหล่านั้นมักจะปวดหัวใหญ่

ดังนั้นเริ่มเล่นกับWP_CONTENT_*ค่าคงที่ ซึ่งฉันเชื่อว่าเป็นวิธีการผิดพลาดน้อยมากและนี่คือสิ่งที่ฉันได้ทำงานในขณะนี้:

หน้าต่างกิจกรรมซาฟารี
/mเป็นuploadsโฟลเดอร์/tเป็นthemesโฟลเดอร์และ/t/tเป็นโฟลเดอร์ธีมที่ใช้งานอยู่ ไซต์ไม่ซับซ้อนมีการโหลดเนื้อหาน้อย ...


WP_CONTENTLESS

wp-config.php

การตั้งค่าwp-contentเป็นรูท ( /public_html/) ของเว็บไซต์

/** 
 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' );

ฉันถามเรื่องนี้ใน[wp-แฮ็กเกอร์] - มีข้อเสียในการตั้งค่า WP_CONTENT_DIR (และ URL) เป็น DOCUMENT_ROOT หรือไม่ ที่จอห์นแบล็กเบิร์น1 , ไมค์ลิตเติ้ล2และอ็อตโต3มีความกรุณามากพอที่จะให้คำแนะนำ:

1
ฉันมีโครงสร้างนี้ใช้งานบนไซต์ในช่วง 18 เดือนที่ผ่านมาและไม่พบปัญหาใด ๆ เช่นเดียวกับการเปลี่ยนแปลงสถานที่ตั้งของไดเรกทอรีเนื้อหาใด ๆ ที่คุณจะต้องตรวจสอบปลั๊กอินใด ๆ wp-contentที่คุณเพิ่มไปยังเว็บไซต์ที่ไม่คิดว่าไดเรกทอรีเนื้อหาที่

2
มีการพูดคุยกันทั่วเน็ตว่า$_SERVER['DOCUMENT_ROOT']อาจมีความเสี่ยงต่อการแฮ็ค ซึ่งในกรณีนี้เป็นสิ่งที่อันตรายอย่างยิ่งเพราะมีสถานที่มากมายrequire()หรือ include() WP_CONTENT_DIR'สิ่งที่';

3
มีหลายกรณีที่เนื้อหา$_SERVERมีความปลอดภัยอย่างสมบูรณ์แบบ แต่เพื่อจุดประสงค์ด้านความปลอดภัยจะดีกว่าที่จะถือเป็นข้อมูลที่ไม่น่าเชื่อถือ สำหรับกรณีเฉพาะนี้ให้ทำการ hardcode ไดเรกทอรี


โฟลเดอร์ชุดรูปแบบใหม่

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

เนื่องจากไม่มีWP_THEMES_*ค่าคงที่เราจำเป็นต้องใช้ฟังก์ชันregister_theme_directory ()เพื่อ " ลงทะเบียนไดเรกทอรีที่มีธีม "
พยายามที่จะตั้งค่าไดเรกทอรีพิเศษให้กับรูท แต่ผลลัพธ์นั้นตลก (เช่น: มันใช้งานไม่ได้)

<?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' );
    }
}

อัพโหลดโฟลเดอร์

/wp-admin/options-media.php

แทนที่จะhttp://example.com/uploadsเป็นhttp://example.com/mเช่นนั้น
การยกเลิกการเลือกOrganize my uploads into...จะให้รูปลักษณ์WPlessกับ URL สินทรัพย์
หากไซต์นั้นเผยแพร่การค้นหา / แทนที่จะต้องทำในฐานข้อมูลและจะต้องย้ายไฟล์ต่างๆ
อัพโหลดการตั้งค่าโฟลเดอร์


ปลั๊กอินและเนื้อหาส่วนหัว

อ้างถึงCris_Oคำตอบในคำถาม & คำตอบนี้


readme.html

อ้างถึงRarstคำตอบในคำถาม & คำตอบนี้


ขั้นตอนอื่น ๆ

ตามปกติธีม ThemeJungle อาจแสดงแฮ็กเฉพาะในธีม
ชอบ ... TimThumbไม่ทำงาน (!!! lol !!!)


1
ขออภัย ThemeForest ดูเหมือนว่าคุณได้ดำเนินการแก้ไขปัญหานี้แล้ว และด้วยความช่วยเหลือที่ดี !
brasofilo

13

คำตอบที่ถูกต้องเท่านั้น: IMPOSSIBLE

คะแนนโหวตสูงมากหลายคำตอบ .... เวลาที่จะตั้งค่าการบันทึกให้ตรง ความจริงก็คือมันเป็นไปไม่ได้จริงและแม้ว่ามันจะเป็นชีวิตอาจสั้นเกินไปที่จะใช้ความพยายามในมัน คำตอบใด ๆ ที่ส่งเสริมขั้นตอนในการซ่อน WP นั้นเป็นการเสียเวลาของคุณและจะทำให้คุณเข้าใจผิดว่าคุณกำลังซ่อน WP ของคุณอยู่ (นั่นไร้สาระ)

1) ปัญหาไม่ใช่wp-*URL ที่ชัดเจนตัวสร้างเมตาดาต้าเป็นต้นปัญหาที่ยากคือรูปแบบที่เกี่ยวข้องกับ wordpress ว่าระบบที่ปลูกในบ้านจะไม่รบกวนการใช้งานเช่นหน้าผู้เขียนปีเดือนหน้าวันใช้ p = nnn เป็นพารามิเตอร์ที่ถูกต้องมีรูปแบบความคิดเห็นที่มีระดับความคิดเห็น wordpress โครงสร้างและลิงค์ชื่อและจากนั้นมีการส่งเสริมตัวเองของปลั๊กอินแคชและ yoast SEO และปลั๊กอินอื่น ๆ ที่คุณเห็นเมื่อคุณตรวจสอบ HTML เท่านั้น

2) มีวิธีการอื่น ๆ ที่ไม่ได้นับที่แสดงการมีอยู่ของ WP (และคุณไม่สามารถเอาชนะได้):

  • แม้แต่ php response-header (ตามที่ Dan Gayle ด้านล่างคำตอบของฉัน) ก็ส่งคืนส่วนหัว WP ที่เจาะจง

  • ทุกคนก็สามารถสอบถามใด ๆ นับรากไฟล์ .php: site.com/wp-cron.phpหรือsite.com/xmlrpc.php(หรือ ฯลฯ ซึ่งลาดเทคุณซ่อน) และคำตอบส่วนหัวจะเป็นแทน200404 not found

  • ทุกคนสามารถตรวจสอบได้ว่ามีจุดปลาย json เพื่อรับคำตอบเฉพาะ WP

  • ในหน้า HTML มีไฟล์จำนวนมาก.cssหรือ.jsมีวลีเฉพาะที่อ้างถึง WP อย่างชัดเจน

  • ภายใน HTML ของหน้ามันง่ายต่อการค้นหาอิลิเมนต์ / คลาส css เช่น<div class="entry-content post-14"...หรืออื่น ๆ (ซึ่งเป็นคำใบ้โดยตรงที่โครงสร้างที่ใช้เป็น WP)

  • ภายใน HTML ของหน้าคุณจะเห็นuploadsโฟลเดอร์ได้อย่างง่ายดายหรือแม้ว่าคุณจะเปลี่ยนชื่อด้วย hardcoding แล้วส่วนวันที่เช่นuploads/2018/05/image.jpg(หรือแม้กระทั่งimage-315x225.jpg) จะแสดงโครงสร้าง WP ทั่วไป

  • เนื่องจากไซต์จำนวนมากถูกสร้างโดยใช้ MultiSite มันใช้เช่น/site/2ในลิงก์ ...

  • ping ใด ๆ README ปลั๊กอิน / ธีม (ทั้งหมดของพวกเขามี) เช่นกลับสถานะplugin-name/readme.txt200

  • และอีกมากมายหลายสิ่งหลายอย่างที่คุณ (หรือแม้แต่มืออาชีพ) จะไม่สามารถซ่อนได้และจะทำให้วันของคุณสิ้นเปลือง!


ข้อสรุป

และแม้ว่าคุณจะพยายามทำความสะอาดทุกสิ่งที่ระบุว่านี่เป็นเวิร์ดเพรสคุณอาจต้องทำซ้ำหรืออย่างน้อยตรวจสอบอีกครั้งหลังจากทุกปลั๊กอินหรืออัพเกรดหลัก ชีวิตนั้นสั้นเกินไปสำหรับเรื่องนั้น

คุณอาจทำให้เข้าใจผิดบาง diletants แต่คุณไม่สามารถซ่อนจากผู้ตรวจสอบที่ดี หากนี่เป็นมาตรการรักษาความปลอดภัยก็คือความปลอดภัยโดยความคลุมเครือซึ่งผิดเสมอและถ้าคุณรู้สึกละอายที่จะใช้เวิร์ดเพรสให้ฉันบอกบางสิ่งกับคุณ - ไม่มีใครใส่ใจและแม้แต่น้อยที่ไม่น่าจะทำได้ รู้วิธีที่จะคิดออกเอง

สิ่งเดียวที่คุณควรใส่ใจคือคุณปกป้อง WP ให้มากที่สุดเท่าที่จะทำได้และตรวจสอบว่ามันอัพเดตเป็นประจำ


คำตอบเดียวที่ถูกต้องฉันต้องการโพสต์นั้น ฉันดูถูกคำตอบอื่น ๆ ทั้งหมดเนื่องจากพวกเขาเป็นเพียงการลองผิดลองถูกเวลาเพื่อบรรลุเป้าหมายที่เป็นไปไม่ได้และไร้สาระ หากคุณอนุญาตให้ฉันฉันจะเพิ่ม 2 เซ็นต์ภายในคำตอบของคุณ
T.Todua

แน่นอนไปเลย
Mark Kaplun

ฉันยังโหวตสิ่งนี้ด้วย มันเสียเวลาซ่อน wp เพียงเพื่อความปลอดภัยโดยความสับสน มันไม่เพียง แต่จะไม่ทำงาน แต่ยังอาจทำให้ฟังก์ชันการทำงานผิดพลาดได้อีกด้วย
Remzi Cavdar

10

คุณสามารถมีเวิร์ดเพรสบนเซิร์ฟเวอร์เครื่องหนึ่งและขูดเนื้อหาของคุณจากที่อื่นรวมถึงเนื้อหาที่คุณต้องการเท่านั้น

หากคุณต้องการ RSS คุณจะต้องทำเช่นเดียวกัน

อย่างมีประสิทธิภาพมันจะเหมือนการให้บริการหน้าคงที่จากพร็อกซีหรือ CDN แต่เพียงบิตที่คุณต้องการให้บริการ จากนั้นคุณสามารถใช้ระบบความคิดเห็นที่ใช้ javascript เช่น Disqus

ใช้ทรัพยากรน้อยจริงๆเพราะที่นี่ไม่มีฐานข้อมูลบนเซิร์ฟเวอร์ที่ให้บริการเนื้อหา


@AndyBeard - เป็นแนวคิดที่น่าสนใจมาก แต่ต้องใช้เวลาในการพัฒนาจำนวนมากเพื่อให้สามารถใช้งานได้ หรือคุณรู้จักโครงการโอเพนซอร์ซที่มีคนทำสิ่งนี้แล้ว
MikeSchinkel

4
นี่คือทางออกหนึ่งของwordpress.org/extend/plugins/really-static - มีอีกสองสามคน
AndyBeard

7

คุณสามารถสร้างที่อยู่ที่กำหนดเองเพื่อเข้าสู่บล็อกของคุณ การไม่ใช้เส้นทาง“ myblog.com/wp-admin” แบบคลาสสิกเพื่อไปที่หน้าแดชบอร์ดของคุณหน้า นี้จะช่วยคุณในการสร้างการเข้าสู่ระบบที่ซ่อนตัวซึ่งเป็นวิธีที่ดีสำหรับมาตรการรักษาความปลอดภัย

ดังนั้น ppl ที่ผนวก wp-admin เข้ากับบล็อกของคุณจะไม่สามารถเดาได้ :)


ลิงก์ล้าสมัย & ลบปลั๊กอินแล้ว
ไกเซอร์

2
@kaiser ที่: อินเทอร์เน็ต Archive Wayback เครื่องมีมัน (และที่น่าอัศจรรย์ใจแม้ซิป);)
brasofilo


1
@kaiser brasofilo - ขอบคุณมากสำหรับการติดตามคำตอบ :) ฉันกำลังทำเรื่องนี้อยู่เหมือนกัน
mireille raad

5

นอกเหนือจากข้างต้นคุณต้องล็อคการเข้าถึงwp*ไฟล์และไดเรกทอรีต่างๆ หากมีคนต้องการดูว่าคุณใช้ WP อยู่หรือไม่พวกเขาสามารถเดาได้ว่าคุณมีwp-settings.phpหรือว่าพวกเขาสามารถเข้าถึงบางไดเรกทอรีได้หรือไม่ การคืน 403 นั้นไม่เพียงพอเพราะมันบอกผู้ใช้ว่ามีทรัพยากรอยู่; พวกเขาไม่สามารถเข้าถึงได้

ฉันไม่ใช่ผู้เชี่ยวชาญ apache ดังนั้นฉันจึงถามคำถามนี้กับ serverfault


3

อย่าลืมว่าข้อมูลส่วนหัว http จำนวนมากที่ส่งไปพร้อมกับคำขอของคุณสามารถระบุไซต์ของคุณว่าทำงานบน WordPress ได้ ตัวอย่างเช่นหากคุณตรวจสอบส่วนหัวในเว็บไซต์ต่อไปนี้จะเห็นได้ชัดว่า:

$ 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

บางอันถูกตั้งค่าโดยเซิร์ฟเวอร์บางตัวถูกตั้งค่าโดยปลั๊กอินดังนั้นไม่มีวิธีใดที่ฉันจะบอกวิธีลบ 100% ของพวกเขา แต่ถ้าคุณใช้ PHP 5.3 คุณสามารถใช้

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

เพื่อลบส่วนหัว PHP ที่รู้จักก่อนที่เนื้อหาของคุณจะถูกผลักออก ฉันไม่สามารถพูดได้อย่างแน่นอนว่าจะวางที่นี่ (อาจมีคนอื่นสามารถขว้างด้วยข้อมูลนั้น) แต่มันอาจจะปลอดภัยที่จะวางไว้ที่ด้านบนสุดของ index.php ก่อนเนื้อหาใด ๆ ที่ส่งไปยังเบราว์เซอร์


3

นี่อาจเป็นเรื่องยากที่จะบรรลุหากคุณยังใหม่กับ php และ mod_rewrite ฉันขอแนะนำให้คุณตรวจสอบกับส่วนของการตอบสนองของฉัน หรือลองด้วยตัวคุณเองคุณสามารถใช้สิ่งนี้เพื่อซ่อนโครงสร้างเส้นทาง wp-content / plugins:

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

สิ่งนี้จะเปลี่ยนพา ธ ไปยัง / modules ใช้สิ่งที่คล้ายกับโครงสร้างอื่น ๆ คุณอาจต้องเขียนใหม่ขั้นสูงดูที่http://httpd.apache.org/docs/current/mod/mod_rewrite.htmlสำหรับข้อมูลเพิ่มเติมของ mod_rewrite

หากต้องการบางสิ่งบางอย่างออกมาจากกล่องที่มีปลั๊กอินที่ดีไม่กี่บางในเชิงพาณิชย์ยังพื้นที่เก็บข้อมูลฟรีที่ WordPress, ฉันขอแนะนำให้ลองWP ซ่อนและรักษาความปลอดภัย Enhancer ซึ่งรวมถึงสิ่งต่าง ๆ มากมายและช่วยในการเปลี่ยนแปลงทุกอย่างเพื่อทำให้ WordPress ของคุณจดจำไม่ได้ นี่คือคุณสมบัติบางอย่างของรหัส:

  • URL ของผู้ดูแลระบบที่กำหนดเอง
  • URL ของผู้ดูแลระบบที่กำหนดเอง
  • บล็อก URL เริ่มต้นของผู้ดูแลระบบ
  • บล็อกการเข้าถึงโฟลเดอร์โดยตรงเพื่อซ่อนโครงสร้างอย่างสมบูรณ์
  • ชื่อไฟล์ wp-login.php ที่กำหนดเอง
  • บล็อก wp-login.php เริ่มต้น
  • บล็อกค่าเริ่มต้น wp-signup.php
  • บล็อก XML-RPC API
  • ใหม่เส้นทาง XML-RPC
  • URL ธีมที่ปรับได้
  • URL ธีมของเด็กใหม่
  • เปลี่ยนชื่อไฟล์สไตล์ของธีม
  • กำหนดเองรวม wp
  • บล็อกพา ธ wp-include ที่เป็นค่าเริ่มต้น
  • ปิดกั้นเนื้อหา wp defalt
  • URL ปลั๊กอินที่กำหนดเอง
  • การเปลี่ยนแปลง URL ปลั๊กอินส่วนบุคคล
  • บล็อกเส้นทางปลั๊กอินเริ่มต้น
  • URL การอัปโหลดใหม่
  • บล็อก URL การอัปโหลดเริ่มต้น
  • ลบรุ่น wordpress
  • บล็อก Meta Generator
  • ปิดการใช้งาน emoji และรหัสจาวาสคริปต์ที่จำเป็น
  • ลบแท็ก pingback
  • ลบ wlwmanifest Meta
  • ลบ rsd_link Meta
  • ลบ wpemoji

และอื่น ๆ อีกมากมาย..


2

ฉันไม่ต้องการที่จะทำซ้ำตัวเลือกการเข้ารหัสเนื่องจากมันครอบคลุมอย่างละเอียดถี่ถ้วนตัวเลือกอื่น ๆ ที่ฉันรู้ว่าใช้งานได้คือปลั๊กอินที่ซ่อน wp ฉันใช้ปลั๊กอินนี้มาก่อนเพื่อให้ได้มาตรฐานที่น่าพอใจ มันเรียกว่าซ่อน WordPress ของฉัน


2

คำตอบส่วนใหญ่เน้นที่การปิดบัง WordPress ในซอร์สโค้ดของหน้า แต่ก่อนหน้านั้น WP ได้ให้ตัวเองไปแล้วในส่วนหัว http ของการติดตั้งมาตรฐาน เพียงลองเว็บไซต์ของคุณเองบนเว็บไซต์อย่างเช่นweb-sniffer (แสร้งทำเป็น IE 6 และขอส่วนหัว http 1.0) แล้วคุณจะเห็นว่าในบรรดาผลตอบแทนคือ:

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

หลังมีการเชื่อมโยงไปที่Wordpress.org API มีตั้งแต่ REST API รวมอยู่ใน WP 4.4 คุณสามารถลบออกได้ด้วยบรรทัดนี้ในตอนต้นfunctions.php:

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

ปลั๊กอินจำนวนมากเช่น Jetpack สำหรับ Shortlink อาจแทรกลิงค์ในส่วนหัว http พวกเขาสามารถทำได้เนื่องจาก WP มีHTTP APIซึ่งช่วยให้คุณสามารถจัดการส่วนหัว คุณสามารถใช้อินเทอร์เฟซนี้เพื่อลบการตั้งค่าส่วนหัวทั้งหมดโดยปลั๊กอินถ้าคุณเพิ่มการกระทำของคุณช้าในกระบวนการ

สุดท้ายคุณอาจใช้. htaccess header interfaceเพื่อดักจับสิ่งที่ WP กำลังทำอยู่ ตัวอย่างเช่นคุณสามารถป้องกันไม่ให้ส่วนหัวลิงก์ถูกส่งโดยรวมบรรทัดนี้:

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

0

คุณสามารถปรับแต่งชุดรูปแบบเพื่อยกเว้นข้อมูล WordPress ทั้งหมด ลบเมตาวิดเจ็ตและวิดเจ็ตใด ๆ ที่จะส่งออกข้อมูลเกี่ยวกับแพลตฟอร์ม

โดยส่วนตัวฉันชอบแสดงความขอบคุณด้วยการแสดงว่าฉันใช้ WordPress


17
ความกตัญญูกตเวทีดี แต่ไม่ตอบคำถามหลัก
ZaMoose

-1

คุณสามารถใช้ปลั๊กอินWPS ซ่อนเข้าสู่ระบบ คุณเข้าสู่ระบบของคุณโดยใช้
WordPress wp-adminแต่คุณสามารถเปลี่ยนwp-adminเป็นการกำหนดเองโดยใช้ปลั๊กอินนี้

ตัวอย่าง:

ก่อน: http://example.com/wp-admin
หลัง: http://example.com/custom-text-to-login

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.