Попередження доступу або автоматичне видалення readme.html, licence.txt, wp-config-sample.php


13

Лише швидке запитання, яке може допомогти татові з безпекою. Я помітив, що у файлі readme.html вказаний номер версії. Він з'являється знову після кожного оновлення, а також робимо licence.txt та wp-config-sample.php.

Чи є простий спосіб змусити WordPress автоматично видалити ці файли після оновлення?

Я вже блокую номер версії, щоб він не відображався у метатегах, RSS-каналах, атомі тощо.

Я знаю , що цей тип безпеки не точно , що дуже корисно, але просто подумав , що це може бути крихітне початком. Я чув, що люди можуть просто перевірити версію jQuery, яка включена до WP-включає, та перехресну посилання, яка версія WP поставляється.

Відповіді:


19

Вам не потрібно видаляти ці файли. Набагато простіше просто заблокувати доступ до них. Якщо ви використовуєте гарні URL-адреси, у вас вже є файл .htaccess. Використання .htaccess для блокування файлів захищено, і вам потрібно лише один раз додати директиву.

Блокування файлів здійснюється за допомогою додавання директиви до .htaccess таким чином:

    <files filename.file-extension>
         order allow,deny
         deny from all
    </files>

Отже, щоб заблокувати readme.html, зробіть це:

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

Зробіть те ж саме з файлом ліцензії або будь-яким іншим файлом, який ви хочете не допустити до доступу будь-кого. Просто відкрийте .htaccess у Блокноті чи будь-якому іншому базовому текстовому редакторі, додайте директиви та збережіть, переконуючись, що текстовий редактор точно зберігає ім'я файлу - без будь-якого .txt в кінці.


1
Це насправді варіант, з яким я закінчився. Це прекрасно працює.
Сахас Катта

1
Будьте уважні , що вищевказаний синтаксис дійсний лише до Apache 2.2! Після цього використовуйте Require all denied(замінюючи внутрішні 2 рядки) для Apache 2.4 і вище. Детальніше тут
Frank Nocke

5

Ось моя думка:

RewriteRule (?:readme|license|changelog|-config|-sample)\.(?:php|md|txt|html?) - [R=404,NC,L]
  • 404 (не існує), а не 403 (заборонено), щоб уникнути будь-якої підказки про існування.
  • також у підпапках (тобто теми та плагіни, які можуть запропонувати атаку)
  • нечутливі до регістру, гнучкі до розширення, також ловить README.html або License.html (сміливо додайте типових підозрюваних, таких як журнали змін | faq | сприяючи)

Особисто я б також заблокував:

RewriteRule \.(?:psd|log|cmd|exe|bat|c?sh)$ - [NC,F]

nb:

  • '?:' просто оголошує дужку невідповідною (не має значення).
  • вимагає RewriteEngine on(це, швидше за все, було б рідко, використовувати Wordpress без ... (потворні постійні посилання тощо)).
  • вставити перед тим в # BEGIN WordPressрозділі в вашому .htaccess

3
add_action('core_upgrade_preamble','my_function_to_delete_files');

Редагувати: ви також можете спробувати це

add_action('upgrader_pre_install','my_function_to_delete_files');
add_action('upgrader_post_install','my_function_to_delete_files');

Дякую, я з’ясував функцію від’єднання php, і вона працює, але одна проблема. Гачок, який ви надали, здається, виконується, просто відвідавши розділ "Оновлення" на інформаційній панелі. Чи є ще один гак після оновлення?
Сахас Катта

1
погано подивіться і повідомте вас
Атіф Мохаммед Амеенуддін

@Sahas @ atif089 Вам вдалося змусити це працювати?
INT

Замість видалення (якщо ви хочете насправді прочитати readme!), Ви можете використовувати це у своїй функціїchmod("/path/to/readme.txt", 0640);
Bysander
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.