it-swarm.asia

خطوات يجب اتخاذها لإخفاء حقيقة أن الموقع يستخدم وورد؟

لدي موقع على شبكة الإنترنت نحاول أن نكون حريصين عليه بشأن حقيقة أننا نستخدم WordPress. ما هي الخطوات التي يمكننا اتخاذها لجعلها أقل وضوحا؟

EDIT- ملاحظة أمان مهمة:

يرجى تفهم أن القيام بذلك أمر مستحيل تمامًا وفقًا لـ answer ، لذلك لا تعتمد على هذا كإجراء أمني.

141
Casebash

توجد أكبر هبات WordPress بين العلامات <head> </head>.

مثال: إخراج محتوى رأس WordPress بواسطة The Twentyten Theme وكيفية الإزالة:

<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. يتطلب WordPress أن يتضمن السمة الخاصة بك بعض المعلومات الأساسية في الجزء العلوي من style.css (يجب أن يكون style.css في دليل جذر السمات). ستحتاج إلى إنشاء CSS بديل والاتصال به من رأسك. لا يتطلب WordPress منك استخدام style style. ccs ، فهو يتطلب فقط أن يكون في دليل السمات.

إزالة مباشرة من 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" /> 

لإزالة هذه الروابط الإضافية ، يمكنك إضافة عامل تصفية إلى jobs.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 في ملف 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');

الإضافات

يجب الانتباه إلى أن بعض المكونات الإضافية مثل Akismat و All in One SEO و W3-Total-Cache و Super Cache والعديد غيرها تضيف تعليقات على إخراج HTML. يسهل تعديل معظمها لإزالة التعليقات ، ولكن ستتم الكتابة فوق تغييراتك في أي وقت يتم فيه تحديث المكونات الإضافية.

يتضمن wp

يحتوي الدليل wp-include على مسج وملفات js مختلفة أخرى ستتصل بها السمات أو الإضافات باستخدام wp_enqueue_script (). لتغيير هذا الأمر ، ستحتاج إلى إلغاء تسجيل البرامج النصية الافتراضية في WordPress وتسجيل الموقع الجديد. إضافة إلى وظائف.

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

يجب القيام بذلك مع كل برنامج نصي يستخدمه موضوعك أو ملحقاتك.

126
Chris_O

غالبًا ما يتم تفويته - احذف readme.html في جذر WordPress. لا يحدد التثبيت فقط كـ WP ولكن له أيضًا إصدار دقيق. ولا تنس أن تكرر التحديثات.

سؤال ذو صلة: منع الوصول أو الحذف التلقائي readme.html ، license.txt ، wp-config-sample.php

45
Rarst

لقد استخدمت دائما أسلوب الجذور الموضوع .
ولكن تطبيقه على هؤلاء ThemeJungleعادة ما يكون هناك صداع كبير.

لذلك ، بدأت اللعب مع ثوابت WP_CONTENT_*. التي أعتقد أنها طريقة أقل عرضة للخطأ وهذا ما أعمله الآن:

safari activity window
/m هو المجلد uploadsname__، /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-hackers] - أي عيوب في إعداد WP_CONTENT_DIR (وعنوان URL) على DOCUMENT_ROOT؟ ، حيث جون Blackbourn1مايك ليتل2 وأوتو3 كانت تتكرم بما فيه الكفاية لتقديم المشورة:

1
لقد كان هذا الهيكل نشطًا على أحد المواقع لمدة 18 شهرًا الماضية ولم أر أي مشاكل. كما هو الحال مع أي تغيير في موقع دليل المحتوى ، ستحتاج إلى التحقق من ضعف أي مكونات إضافية تضيفها إلى الموقع لا تفترض أن دليل المحتوى موجود في wp-content.

2
هناك مناقشات حول الشبكة قد يكون $_SERVER['DOCUMENT_ROOT'] عرضة للاختراق. في هذه الحالة ، يكون هذا الأمر خطيرًا للغاية لأن هناك الكثير من الأماكن التي require() أو include()WP_CONTENT_DIR. 'شيئا ما'؛

3
هناك حالات يمكن أن يكون فيها المحتوى في $_SERVER آمنًا تمامًا ، ولكن لأغراض الأمان ، من الأفضل دائمًا التعامل معه على أنه بيانات غير موثوق بها. لهذه الحالة بالذات ، اربط الدليل.


مجلد ثيمات جديدة

/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 للأصول.
إذا كان الموقع مباشرًا ، فيجب إجراء عملية بحث/استبدال في قاعدة البيانات ويجب نقل الملفات.
uploads folder settings


الإضافات ومحتوى الرأس

ارجع إلى Cris_O أجب في Q&A.


Readme.html

ارجع إلى Rarstأجب في Q&A.


خطوات أخرى

كالمعتاد ، قد تجعل سمات ThemeJungle الاختراقات المحددة في السمة.
مثل ... TimThumb لا يعمل (!!! لول !!!).

21
brasofilo

الجواب الوحيد الصحيح: مستحيل

الكثير من الإجابات صوتت عالية .... الوقت لتعيين السجل في وضع مستقيم. حسنًا ، الحقيقة هي أنه من المستحيل تقريبًا ، وحتى لو كان الأمر كذلك ، فربما تكون الحياة قصيرة جدًا بحيث لا يمكن بذل مجهود فيه. أي إجابة ، تشجع الخطوات لإخفاء WP هي مجرد مضيعة لوقتك وستضلل أنك تعتقد أنك تختبئ WP (هذا أمر سخيف).

1) المشكلة ليست في عناوين URL wp-* الواضحة ، ومعالج المولد الخ. إن المشكلات الصعبة تكمن في الأنماط المرتبطة بـ WordPress والتي لن يزعجها النظام المحلي الذي تم تطويره مثل صفحات المؤلف ، والسنة ، والشهر ، وصفحات اليوم ، واستخدام = nnn كمعلمة صالحة ، لديك نموذج التعليق مع فئة وورد تعليق التعليق ، وهيكل وأسماء الارتباط ، ومن ثم هناك تعزيز الذات من الإضافات التخزين المؤقت و SEO yoast وربما العديد من الإضافات الأخرى التي تراها فقط عند فحص HTML نفسه .

2) هناك طرق أخرى غير محسوبة توضح وجود WP (ولا يمكنك التغلب على ذلك):

  • حتى رأس استجابة php (كما لاحظ Dan Gayle أدناه إجابتي) بإرجاع رأس WP المحدد.

  • يمكن لأي شخص فقط الاستعلام عن أي من ملفات .php الجذر لعشرات: site.com/wp-cron.php أو site.com/xmlrpc.php (أو ما إلى ذلك ، والتي لا يمكنك إخفاؤها) وستكون إجابة الرأس 200 بدلاً من 404 not found.

  • يمكن لأي شخص التحقق لديه نقاط نهاية json للحصول على WP إجابة محددة.

  • داخل صفحة HTML ، يحتوي العديد من ملفات .css أو .js على عبارات محددة ، تشير بوضوح إلى WP.

  • داخل صفحة HTML ، يسهل العثور على فئات العناصر/css ، مثل <div class="entry-content post-14"... أو ما إلى ذلك (وهو تلميح مباشر أن البنية المستخدمة هي عبارة عن WP)

  • داخل صفحة HTML ، سترى بسهولة المجلد uploads ، أو حتى إذا قمت بإعادة تسمية ذلك باستخدام القرص الصلب ، فإن جزء التاريخ مثل uploads/2018/05/image.jpg (أو حتى image-315x225.jpg) يُظهر بنية WP النموذجية.

  • نظرًا لأن العديد من المواقع مبنية الآن باستخدام MultiSite ، فإنها تستخدم أي /site/2 في الروابط ...

  • تنفيذ الأمر ping على أي ملحق لإضافات/سمات (تحتوي جميعها) ، مثل plugin-name/readme.txt ، عودة الحالة 200.

  • والكثير والكثير والكثير من الأشياء الأخرى التي لن تتمكن (أو حتى المهنيين) من إخفاءها وستضيع أيامك فقط!


استنتاج

وحتى إذا بذلت جهدًا في تنظيف كل ما يشير إلى أن هذه عبارة عن وورد ، فقد تحتاج إلى إعادة أو على الأقل إعادة الفحص بعد كل ترقية للمكون الإضافي أو الأساسي. الحياة قصيرة جدا لذلك.

قد تضلل بعض المكفوفين ، لكن لا يمكنك الاختباء من مفتش جيد. إذا تم ذلك كإجراء أمني ، فهذا يعني أن الأمن من خلال الغموض هو الخطأ دائمًا ، وإذا كنت تشعر بالخجل من استخدام وورد ، فاسمح لي أن أخبرك بشيء - لا أحد يهتم ، وحتى القلة القليلة التي ربما لن تفعل ذلك معرفة كيفية معرفة ذلك بنفسه.

الشيء الوحيد الذي يجب أن تهتم به ، هو أنك تحمي WP قدر ما تستطيع وتراقب تحديثاته المنتظمة.

12
Mark Kaplun

يمكنك الحصول على WordPress على خادم واحد وكشط المحتوى الخاص بك من خادم آخر فقط بما في ذلك المحتوى الذي تحتاجه.

إذا كنت بحاجة إلى RSS ، فعليك أن تفعل الشيء نفسه مع ذلك.

سيكون الأمر فعالًا مثل عرض الصفحات الثابتة من وكيل أو CDN ، ولكن فقط البتات التي تريد عرضها. يمكنك أيضًا عندئذٍ استخدام نظام تعليق يستند إلى javascript مثل Disqus.

استخدام موارد منخفض بالفعل ، لأن هنا لا توجد قواعد بيانات على الخادم الذي يخدم المحتوى.

10
AndyBeard

يمكنك إنشاء عنوانك المخصص لتسجيل الدخول إلى مدونتك. من خلال عدم استخدام المسار التقليدي "myblog.com/wp-admin" للوصول إلى لوحة القيادة هذه الصفحة سوف يساعدك في إنشاء عمليات تسجيل الدخول الخلسة ، وهذا مفيد أيضًا لتدابير الأمان.

لذلك فإن شركته تنوي إلحاق wp-admin بمدونتك ، لن تكون قادرة على تخمين :)

7
mireille raad

بالإضافة إلى ما سبق ، تحتاج إلى قفل الوصول إلى مختلف الملفات والدلائل wp*. إذا أراد شخص ما معرفة ما إذا كنت تقوم بتشغيل WP فيمكنهم تخمين معرفة ما إذا كان لديك wp-settings.php أو ما إذا كان يمكنهم الوصول إلى بعض الأدلة. إرجاع 403 لا يكفي لأنه يخبر المستخدم أن المورد موجود ؛ انهم فقط لا يستطيعون الوصول إليها.

أنا لست خبيرا من طراز Apache ، لذا طرحت هذا السؤال أكثر من serverfault.

5
Avery Chan

قد يكون ذلك صعبًا إذا كنت جديدًا في php و mod_rewrite. أقترح عليك مراجعة قسم ردي. أو جرب ذلك بنفسك ، يمكنك استخدام شيء مثل هذا لإخفاء بنية مسار wp-content/plugins:

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

سيؤدي هذا إلى تغيير المسار إلى/الوحدات النمطية. استخدم شيئًا مشابهًا للبنية الأخرى ، فقد تحتاج إلى بعض عمليات إعادة الكتابة المتقدمة ، راجع http://httpd.Apache.org/docs/current/mod/mod_rewrite.html للحصول على معلومات إضافية عن mod_rewrite.

إذا كنت تفضل شيئًا ما خارج الصندوق ، فهناك بعض الإضافات اللطيفة وبعضها تجاري مجانًا في مستودع WordPress ، أقترح تجربة WP Hide & Security Enhancer . يتضمن ذلك الكثير من الأشياء ويساعد على تغيير كل شيء إلى حد كبير لجعل WordPress الخاص بك غير معروف. فيما يلي بعض ميزات الكود:

  • عنوان المسؤول المخصص
  • عنوان المسؤول المخصص
  • حظر المشرف الافتراضي Url
  • منع أي وصول مباشر إلى المجلد لإخفاء الهيكل تمامًا
  • عرف اسم ملف wp-login.php
  • حظر الافتراضي wp-login.php
  • حظر الافتراضي wp-signup.php
  • حظر XML-RPC API
  • مسار XML-RPC جديد
  • عنوان URL قابل للتعديل
  • عنوان url الجديد للطفل
  • تغيير اسم ملف نمط السمة
  • عرف الفسفور الابيض وتشمل
  • حظر مسارات wp الافتراضية
  • كتلة defalt الفسفور الابيض المحتوى
  • الإضافات المخصصة عناوين المواقع
  • تغيير عنوان url المساعد
  • حظر مسارات الإضافات الافتراضية
  • رابط تحميل جديد
  • حظر عناوين url للتحميل الافتراضية
  • إزالة نسخة وورد
  • كتلة مولد ميتا
  • تعطيل الرموز التعبيرية ورمز جافا سكريبت المطلوب
  • إزالة علامة pingback
  • إزالة wlwmanifest التعريف
  • إزالة rsd_link التعريف
  • إزالة wpemoji

و أكثر من ذلك بكثير..

3
WP-Silver

لا تنس أن الكثير من معلومات رأس 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/ar/function.header-remove.php )

لإزالة رأس PHP معروف قبل إزالة المحتوى الخاص بك. لا يمكنني القول على وجه اليقين مكان وضع هذا (ربما يمكن لأي شخص آخر عرض هذه المعلومات) ، ولكن من الآمن وضعه في أعلى الفهرس الخاص بك. قبل أي محتوى يتم إرساله إلى المتصفح.

3
Dan Gayle

تركز معظم الإجابات على إخفاء 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 للروابط القصيرة الخاصة بها ، أيضًا بإدراج روابط في رأس http. يمكنهم القيام بذلك ، لأن WP لديه HTTP API ، والذي يسمح لك بمعالجة الرؤوس. يمكنك استخدام هذه الواجهة لإزالة جميع إعدادات الرأس عن طريق المكونات الإضافية إذا قمت بإضافة الإجراء الخاص بك في وقت متأخر بما فيه الكفاية في هذه العملية.

أخيرًا ، يمكنك استخدام .htaccess header لاعتراض أي شيء WP يقوم به. على سبيل المثال ، يمكنك منع إرسال أي رؤوس ارتباط من خلال تضمين هذا السطر:

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

لا أرغب في تكرار خيارات الترميز نظرًا لأنه تمت تغطيتها بشكل شامل ، والخيار الآخر الذي أعرفه هو أنه يعمل باستخدام مكون إضافي يخفي wp. لقد استخدمت هذا البرنامج المساعد من قبل لمعايير مرضية. دعا لها إخفاء بلدي وورد.

2
NJENGAH

يمكنك تخصيص سمة لاستبعاد جميع معلومات وورد. قم أيضًا بإزالة أداة تعريف التعريف وأي أداة من شأنها إخراج معلومات حول النظام الأساسي.

أنا شخصياً أفضل أن أبدي امتناني من خلال عرض أنني أستخدم WordPress.

0
James