Popraw bezpieczeństwo wordpress, ukrywając zasoby niepubliczne


9

Jestem nowy z wordpress i chcę poprawić bezpieczeństwo wielu witryn Wordpress, ukrywając niepubliczne zasoby, np. wp-admin, wp-config itp.

Moje ustawienie wydaje się działać, ale nie wiem, czy to ustawienie może coś zepsuć (podstawowe funkcje, popularne wtyczki itp.)

  1. Czy moje ustawienia są ogólnie dobre?
  2. Moje ustawienia poprawiają rzeczywiste bezpieczeństwo czy marnuję czas?

httpd-vhosts.conf (apache)

# Disallow public access php for .htaccess and .htpasswd files
<Files ".ht*">
    Require all denied
</Files>

# Disallow public access for *.php files in upload directory
<Directory "/htdocs/wp-content/uploads/">
   <Files "*.php">
       deny from all
   </Files>
</Directory>

# Disallow public access for... 
<Files "wp-config.php">
   order allow,deny
   deny from all
</Files>

<Files "readme.html">
   order allow,deny
   deny from all
</Files>

<Files "license.html">
   order allow,deny
   deny from all
</Files>

<Files "license.txt">
   order allow,deny
   deny from all
</Files>

# Because we do not use any remote connections to publish on WP
<Files "xmlrpc.php">
  order allow,deny
  deny from all
</Files>

.htaccess

RewriteEngine On
RewriteBase /

# List of ACME company IP Address
SetEnvIf Remote_Addr "^127\.0\.0\."      NETWORK=ACME
SetEnvIf Remote_Addr "^XX\.XX\.XX\.XX$"  NETWORK=ACME
SetEnvIf Remote_Addr "^XX\.XX\.XX\.XX$"  NETWORK=ACME
SetEnvIf Remote_Addr "^XX\.XX\.XX\.XX$"  NETWORK=ACME

# Disallow access to wp-admin and wp-login.php
RewriteCond %{SCRIPT_FILENAME} !^(.*)admin-ajax\.php$ # allow fo admin-ajax.php
RewriteCond %{ENV:NETWORK} !^ACME$ # allow for ACME
RewriteCond %{SCRIPT_FILENAME} ^(.*)?wp-login\.php$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin\/
RewriteRule ^(.*)$ - [R=403,L]

# Block user enumeration
RewriteCond %{REQUEST_URI}  ^/$
RewriteCond %{QUERY_STRING} ^/?author=([0-9]*)
RewriteRule ^(.*)$ / [L,R=301]

# Block the include-only files.
# see: http://codex.wordpress.org/Hardening_WordPress (Securing wp-includes)
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
#RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] # Comment for Multisite
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]

function.php

<?php
// Remove unnecessary meta tags
// <meta name="generator" content="WordPress 4.1" />
remove_action('wp_head', 'wp_generator');

// Disable WordPress Login Hints
function no_wordpress_errors(){
    return 'GET OFF MY LAWN !! RIGHT NOW !!';
}
add_filter( 'login_errors', 'no_wordpress_errors' );

wp-config.php

<?php
define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true);

3
jeśli jesteś nowy i nie masz pewności, sprawdź wtyczki takie jak Sucuri Security, iThemes Security, Wordfence Security ... te mają wiele opcji (to nie tak, że
zmuszam

Odpowiedzi:


1

Za pomocą remove_action()można usunąć niepotrzebne linki, na przykład:

remove_action('wp_head', 'rsd_link'); //removes EditURI/RSD (Really Simple Discovery) link.
remove_action('wp_head', 'wlwmanifest_link'); //removes wlwmanifest (Windows Live Writer) link.
remove_action('wp_head', 'wp_generator'); //removes meta name generator.
remove_action('wp_head', 'wp_shortlink_wp_head'); //removes shortlink.
remove_action( 'wp_head', 'feed_links', 2 ); //removes feed links.
remove_action('wp_head', 'feed_links_extra', 3 );  //removes comments feed. 

1
Podczas publikowania kodu użyj formatowania kodu.
bravokeyl

-1

Czy prowadzisz swoją witrynę na cPanel?

Jeśli tak, przejrzyj panel sterowania, a zobaczysz kilka świetnych modułów.

  • ochrona hotlink
  • ochrona pijawek

W zakładce Zaawansowane poszukaj indeksów. Po kliknięciu możesz bardzo łatwo dostosować i „ukryć niepubliczne” zasoby.

wprowadź opis zdjęcia tutaj


Hot Linking nie ma nic wspólnego z bezpieczeństwem. Możesz być całkowicie bezpieczny i zezwalać na gorące linki i „pijawki”
Mark Kaplun

Nie zgadzasz się z tym stwierdzeniem. Nie mogę uwierzyć, że dostałem głos negatywny za opublikowanie wielu technik optymalizacji. (facepalm)
Wujek Iroh

1
jest to twarz, jeśli nie znasz różnicy między optymalizacją a bezpieczeństwem :(.
Mark Kaplun
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.