it-swarm.asia

Bir Sitenin WordPress Kullanması Gerçeğini Gizlemek için Atılması Gereken Adımlar?

WordPress kullandığımız konusunda ihtiyatlı olmaya çalıştığımız bir web sitem var. Daha az belirgin hale getirmek için hangi adımları atabiliriz?

EDIT- Önemli güvenlik notu:

Lütfen bunu mükemmel bir şekilde yapmanın Mark’ın cevapla ’ya göre imkansız olduğunu anlayın, bu nedenle güvenlik önlemi olarak buna güvenmeyin.

141
Casebash

En büyük WordPress eşantiyonları <head> </head> etiketleri arasındadır.

The Twentyten Theme tarafından hazırlanan WordPress başlık içeriği örneği ve nasıl kaldırılacağı:

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

Doğrudan header.php'den kaldır

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

Stil sayfanızı başka bir yerden arayarak WordPress'i gizleyin ve wp-content dizinini değiştirin. WordPress, temanızın style.css (bazı stil.css tema kök dizininde olmalıdır) üstüne bazı temel bilgiler içermesini gerektirir. Alternatif bir CSS oluşturmanız ve onu başınızdan çağırmanız gerekir. WordPress temaları style.css kullanmanızı gerektirmez, sadece temalar dizininde olmasını gerektirir.

Doğrudan header.php'den kaldır

<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" /> 

Bu ekstra bağlantıları kaldırmak için functions.php dosyasına bir filtre ekleyebilirsiniz.

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

Eklenti dizini ve wp-içerik dizini wp-config.php dosyanızda değiştirebilirsiniz, ancak temanız veya herhangi bir eklenti dosyaları çağırmak için uygun yöntemi kullanmıyorsa, bazı problemler yaşayabilirsiniz.

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

WP_CONTENT_URL, bu dizinin tam URI'sine ayarlayın (sonunda eğik çizgi yok), ör.

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

İsteğe Bağlı WP_PLUGIN_DIR öğesini bu dizinin tam yerel yoluna ayarlayın (sondaki eğik çizgi yok), ör.

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

WP_PLUGIN_URL, bu dizinin tam URI'sine ayarlayın (sondaki eğik çizgi yok), ör.

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

EKLENTILERI

Akismat, Hepsi Bir Arada SEO, W3-Toplam Önbellek, Süper Önbellek ve diğerleri gibi bazı eklentilerin HTML çıktısına yorum eklediğini unutmayın. Çoğu yorumu kaldırmak için değiştirmesi kolaydır, ancak eklentiler güncellendiğinde değişikliklerin üzerine yazılacaktır.

wp-içerir

Wp-include dizini jquery'yi ve temaların veya eklentilerin wp_enqueue_script () kullanarak çağıracağı çeşitli diğer js dosyalarını tutar. Bunu değiştirmek için, varsayılan WordPress komut dosyalarının kaydını kaldırmanız ve yeni konumu kaydetmeniz gerekir. Functions.php dosyasına ekleyin:

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

Bunun temanız veya eklentileriniz tarafından kullanılan her komut dosyası ile yapılması gerekecektir.

126
Chris_O

Kaçırılan bir bit - WordPress kökünde readme.html dosyasını silin. Kurulumu yalnızca WP olarak tanımlamaz, aynı zamanda kesin bir versiyona sahiptir. Ve güncellemeleri tekrarlamayı unutma.

İlgili Soru: Readme.html, license.txt, wp-config-sample.php erişimini engelleyin veya otomatik silin

45
Rarst

Ben her zaman Roots Theme metodunu kullandım.
Ama bunu ThemeJungle 'lere uygulamak genellikle büyük bir baş ağrısıdır.

Böylece, WP_CONTENT_* sabitleri ile oynamaya başladı. Ki bence çok daha az hata eğilimli bir yöntem ve şu an üzerinde çalıştığım şey şudur:

safari activity window
/m, uploads klasörü, /t, themes klasörü ve /t/t etkin tema klasörüdür. Site karmaşık değildir, bu nedenle az sayıda varlık yüklü ...


WP_CONTENTLESS

wp-config.php

wp-content sitesinin sitenin köküne (/public_html/) ayarlanması.

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

Bunu [wp-hacker] içinde sordum - WP_CONTENT_DIR (ve URL) 'nin DOCUMENT_ROOT olarak ayarlanmasında herhangi bir sakınca var mı? , John Blackbourn nerede1, Mike Little2 ve Otto3 tavsiye için nazik yeterliydi:

1
Bu yapı son 18 aydır bir sitede aktif olarak bulundum ve herhangi bir problem yaşamadım. İçerik dizininin konumunda yapılan değişikliklerde olduğu gibi, siteye eklediğiniz eklentileri iki kez kontrol etmeniz gerekir, içerik dizininin wp-content konumunda olduğunu varsaymazsınız.

2
Ağın etrafında tartışmalar var, $_SERVER['DOCUMENT_ROOT'] bilgisayar korsanlığına duyarlı olabilir. Bu durumda bu son derece tehlikelidir çünkü require() veya include()WP_CONTENT_DIR olan birçok yer vardır. 'Şey';

3
$_SERVER içindeki içeriğin tamamen güvenli olabileceği durumlar vardır, ancak güvenlik nedeniyle, her zaman güvenilmeyen veriler olarak değerlendirmek daha iyidir. Bu özel durumda, dizini sabitleyin.


Yeni Bir Tema Klasörü

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

WP_THEMES_* sabiti yok olduğundan, register_theme_directory () - "temaları içeren bir dizini kaydedin." İşlevine ihtiyacımız var.
Ek dizini kök dizinine ayarlamaya çalıştım, ancak sonuçlar komik (yani: çalışmıyor).

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

Klasörü Yükler

/wp-admin/options-media.php

http://example.com/uploads yerine, http://example.com/m olacaktır.
Organize my uploads into... öğesinin işaretini kaldırmak, varlıklar URL’lerine WPless görünümü verir.
Site yayındaysa, veritabanında bir arama/değiştirme yapılmalı ve dosyalar taşınmalıdır.
uploads folder settings


Eklentiler ve Baş İçeriği

Bu Q & A'da Cris_O cevabına bakın.


ReadMe.html

Bkz. Rarst Bu Soru ve Cevapda Cevap.


Diğer adımlar

Her zamanki gibi, ThemeJungle temaları, temanın belirli bölümlerini sorabilir.
Beğen ... TimThumb çalışmıyor (!!! lol !!!).

21
brasofilo

Tek geçerli cevap: IMPOSSIBLE

Pek çok yüksek oyu yanıtladı ... rekoru kırma zamanı. Gerçek şu ki, neredeyse imkansızdır ve öyle olsa bile, yaşamın çaba sarf etmesi için çok kısa olması. WP 'i gizleme adımlarını teşvik eden herhangi bir cevap, sadece zamanınızı boşa harcar ve WP' ı sakladığınızı düşünerek sizi yanlış yönlendirir.

1) Sorun bariz wp-* url'leri, jeneratör meta vb. Değildir. Zor sorunlar, bir ev yetiştirilen sistemin, yazar sayfaları, yıl, ay, gün sayfaları, p gibi kullanmak için zahmet etmeyeceği wordpress ile ilişkili kalıplarla ilişkilidir. = nnn geçerli bir parametre olarak, wordpress comment sınıfı, yapı ve bağlantı adlarıyla yorum formuna sahip ve ardından önbellekleme eklentilerinin ve yoast SEO'nun ve muhtemelen yalnızca HTML'yi incelediğinizde gördüğünüz diğer pek çok eklentinin tanıtımını yapın .

2) WP öğesinin varlığını gösteren sayılmamış diğer yöntemler vardır (ve bunu yenemezsiniz):

  • Hatta php yanıt başlığı (cevabımın altındaki Dan Gayle tarafından belirtildiği gibi), özel WP başlığını döndürür.

  • Herkes sadece onlarca kök .php dosyasını sorgulayabilir: site.com/wp-cron.php veya site.com/xmlrpc.php (veya gizleyemediğiniz vb.) Ve başlık cevabı 200 yerine 404 not found olacaktır.

  • herkes kontrol edebilir WP belirli bir cevap almak için json uç noktaları vardır.

  • Sayfanın HTML'sinde, .css veya .js dosyasının çoğu, WP'yi açıkça ifade eden belirli bir ifadeye sahiptir.

  • Sayfa HTML'sinde, <div class="entry-content post-14"... veya etc gibi unsurları/css sınıflarını bulmak kolaydır (bu, kullanılan yapının WP olduğu doğrudan bir ipucu)

  • Sayfanın HTML'sinde kolayca uploads klasörünü görürsünüz ya da bunu hardcoding ile yeniden isimlendirseniz bile, uploads/2018/05/image.jpg (veya hatta image-315x225.jpg) gibi tarih kısmı tipik WP yapısını gösterir.

  • artık birçok site MultiSite kullanılarak oluşturulduğundan, bağlantılarda i.e. /site/2 kullanır ...

  • plugin-name/readme.txt gibi herhangi bir eklenti/tema benioku (hepsi içeriyorsa), ping 200 durumu.

  • ve birçok, birçok, sizin (hatta profesyonellerin) saklayamayacağı ve sadece günlerinizi boşa harcayacağınız diğer birçok şey!


sonuç

Ve bunun bir wordpress olduğunu belirten her şeyi temizleme çabası içindeyseniz bile, her eklenti veya çekirdek güncellemesinden sonra yinelemeniz veya en azından yeniden denetlemeniz gerekebilir. Hayat bunun için çok kısa.

Bazı tercümanları yanlış yönlendirebilirsin ama iyi bir müfettişten saklanamazsın. Eğer bu bir güvenlik önlemi olarak yapılırsa, o zaman her zaman yanlış olan belirsizlikten korunma olur ve eğer sadece wordpress kullanmaktan utanıyorsanız, o zaman size bir şey söyleyeyim - hiç kimse umursamaz ve hatta muhtemelen çok az bir şey yapmaz. kendileri tarafından nasıl çözüleceğini biliyorum.

Dikkat etmeniz gereken tek şey, WP olabildiğince fazla korumanız ve düzenli güncellemelerini izlemeniz.

12
Mark Kaplun

WordPress'i bir sunucuda kullanabilir ve içeriğinizi yalnızca ihtiyacınız olan içerik de dahil olmak üzere diğerinden sıyrılabilir.

RSS’ye ihtiyacınız varsa, bununla aynı şeyi yapmalısınız.

Etkili bir proxy veya CDN'den statik sayfalar sunmak gibi olur, ancak yalnızca sunmak istediğiniz bitler gibi. Daha sonra sadece Disqus gibi javascript tabanlı bir yorum sistemi kullanabilirsiniz.

Gerçekten düşük kaynak kullanımı, çünkü burada içerik sunan sunucuda veri tabanı yok.

10
AndyBeard

Blogunuza giriş yapmak için özel adresinizi oluşturabilirsiniz. Kontrol panelinize ulaşmak için klasik “myblog.com/wp-admin” yolunu kullanmayarak Bu sayfa , gizli girişler oluşturmanıza yardımcı olacaktır, bu aynı zamanda güvenlik önlemleri için de iyidir.

Blogunuza wp-admin ekleyen ppl, tahmin edemezsiniz :)

7
mireille raad

Yukarıdakilere ek olarak, çeşitli wp* dosyalarına ve dizinlerine erişimi kilitlemeniz gerekir. Birisi WP kullanıp kullanmadığınızı görmek istiyorsa, wp-settings.php'nuz olup olmadığını veya bir dizine erişip erişemediklerini görmeyi tahmin edebilirler. Bir 403'ü döndürmek yeterli değildir, çünkü kullanıcıya kaynağın var olduğunu söyler; Onlar sadece erişemezler.

Ben bir Apache uzmanı değilim bu yüzden bu soruyu üzerine serverfault sordum.

5
Avery Chan

PHP ve mod_rewrite için yeni iseniz bu elde etmek zor olabilir. Benim önerim, cevabımın bölümünü kontrol etmen. Veya kendiniz deneyin, wp-content/plugins path yapısını gizlemek için böyle bir şey kullanabilirsiniz:

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

Bu,/modüllere giden yolu değiştirecektir. Diğer yapı için benzer bir şey kullanın, bazı ileri yazma işlemlerine ihtiyaç duyabilirsiniz, bkz. http://httpd.Apache.org/docs/current/mod/mod_rewrite.html ek mod_rewrite bilgileri için.

Kutunun dışında bir şey tercih ederseniz, bazıları WordPress deposunda ücretsiz olan bazı Nice eklentileri vardır, denemeyi öneriyorum WP Hide & Security Enhancer . Bu, birçok şeyi içerir ve WordPress'inizi tanınmaz hale getirmek için hemen hemen her şeyi değiştirmenize yardımcı olur. İşte kodun bazı özellikleri:

  • Özel Yönetici URL'si
  • Özel Yönetici URL'si
  • Varsayılan yönetici URL'sini engelle
  • Yapısını tamamen gizlemek için herhangi bir doğrudan klasör erişimini engelleyin
  • Özel wp-login.php dosya adı
  • Varsayılanı engelle wp-login.php
  • Varsayılan wp-signup.php'yi engelle
  • XML-RPC API'sını engelle
  • Yeni XML-RPC yolu
  • Ayarlanabilir tema url'si
  • Yeni alt tema URL'si
  • Tema stil dosyası adını değiştirin
  • Özel wp-dahil
  • Varsayılan wp-include yollarını engelle
  • Defalt wp içeriğini engelle
  • Özel eklentiler URL'leri
  • Bireysel eklenti url değişikliği
  • Varsayılan eklenti yollarını engelle
  • Yeni yükleme url'si
  • Varsayılan yükleme URL'lerini engelle
  • WordPress sürümünü kaldır
  • Meta Jeneratör bloğu
  • Emoji ve gerekli javascript kodunu devre dışı bırakın
  • Geri sarma etiketini kaldır
  • Wlwmanifest Meta öğesini kaldır
  • Rsd_link Meta öğesini kaldır
  • Wpemoji'yi kaldır

ve daha fazlası..

3
WP-Silver

İsteğinizle birlikte gönderilen http başlık bilgilerinin birçoğunun sitenizi WordPress'te çalıştığını tanımlayabileceğini unutmayın. Örneğin, aşağıdaki sitelerin başlıklarını kontrol ederseniz, aşikardır:

$ 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

Bunlardan bazıları sunucu tarafından ayarlandı, bazıları eklentilerle ayarlandı, bu yüzden% 100'ünün nasıl kaldırılacağını söylememin bir yolu yok, ancak eğer kullanıyorsanız PHP 5.3

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

i̇çeriğiniz dışarı atılmadan önce bilinen bir PHP başlığını kaldırmak için. Bunu nereye koyacağınıza dair kesin bir şey söyleyemem (belki başka biri bu bilgiyi arayabilir), ancak tarayıcıya gönderilmeden ÖNCE, index.php dosyasının en üst kısmına koymak muhtemelen güvenlidir.

3
Dan Gayle

Yanıtların çoğu WordPress'i bir sayfanın kaynak kodunda gizlemeye odaklanmıştır, ancak ondan önce bile WP zaten standart bir kurulumun http başlığında kendisini vermiştir. Sadece web-sniffer gibi bir sitede kendi sitenizi deneyin (IE 6 gibi davranın ve http 1.0 başlığını isteyin) ve iadelerin arasında olduğunu göreceksiniz:

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

İkincisi, Wordpress.org API 'nin bağlantısıdır. REST API, WP 4.4 'e dahil edildiğinden beri var. functions.php'nuzun başlangıcında bu satırla hemen kaldırabilirsiniz:

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

Kısa paketleri için Jetpack gibi pek çok eklenti de http başlığına bağlantılar ekleyebilir. Bunu yapabilirler, çünkü WP bir HTTP API 'a sahiptir, bu da başlıkları değiştirmenize izin verir. İşleminizi yeterince geç eklerseniz, bu arayüzü tüm başlık ayarlarını eklentilerden kaldırmak için kullanabilirsiniz.

Son olarak, .htaccess başlık arabirimini kullanarak herhangi bir şeyi kesmek için kullanabilirsiniz WP yapıyor. Örneğin, bu satırı ekleyerek herhangi bir Bağlantı başlığının gönderilmesini önleyebilirsiniz:

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

Kapsamlı bir şekilde kaplandığından kodlama seçeneklerini tekrarlamak istemiyorum, diğer işe yaradığını biliyorum, wp'yi gizleyen bir eklenti kullanıyor. Daha önce bu eklentiyi tatmin edici standartlar için kullandım. Adı WordPress'imi gizle.

2
NJENGAH

Tüm WordPress bilgilerini hariç tutmak için bir temayı özelleştirebilirsiniz. Ayrıca meta widget'ı ve platform hakkında bilgi çıkaran herhangi bir widget'ı da kaldırın.

Şahsen, WordPress kullandığımı göstererek minnettarlığımı göstermeyi tercih ederim.

0
James