web-dev-qa-db-fra.com

Quels scripts WordPress doivent être exécutables pour une nouvelle installation?

Pour des raisons de sécurité, je dois bloquer l'accès aux scripts qui ne seront pas exécutés lors d'une nouvelle installation de WordPress.

Exemple:

  • /index.php -> doit être exécutable
  • /wp-includes/cache.php -> ne doit pas être exécuté (il est inclus dans d'autres fichiers)

Tout le monde a des informations sur les fichiers qui sontincluset ceux qui doivent êtreexecutable?

Je veux construire une liste de fichiers valides qui peuvent être exécutés via .htaccess, comme ceci:


Update:

Il s'agit du fichier .htaccess que j'ai - ma vraie question: cette configuration est-elle complète ou dois-je autoriser plus de fichiers pour qu'une nouvelle installation de WordPress fonctionne correctement?

<IfModule mod_rewrite.c>
  # ONLY ALLOW THESE SCRIPTS TO EXECUTE:

  # == Login, Signup, Activate
  RewriteRule ^wp-login.php - [L]
  RewriteRule ^wp-activate.php - [L]
  RewriteRule ^wp-signup.php - [L]
  # == All admin scripts and WYSIWYG editor
  RewriteRule ^wp-admin/ - [L]
  RewriteRule ^wp-includes/js/tinymce/wp-tinymce.php - [L]
  # == WP Cron and mail
  RewriteRule ^wp-cron.php - [L]
  RewriteRule ^wp-mail.php - [L]
  # == WP Comments form
  RewriteRule ^wp-comments-post.php - [L]

  # (...) <-- I need to know which other files need to be allowed


  # BLOCK ALL OTHER SCRIPTS
  RewriteCond %{REQUEST_FILENAME} -f
  RewriteRule \.(php.?|pl|cgi)$ - [F,L]
</IfModule>
2
Philipp

En raison de WP architecture administrative, ce serait vraiment liste peu pratique pour compiler et maintenir de manière fiable.

Ma meilleure hypothèse est que beaucoup (mais pas tous et pas seulement) de ces fichiers devraient nécessiter le démarrage de l'administrateur (wp-admin/admin.php) pour fonctionner.

J'ai effectué une recherche rapide sur la directive respective avec les résultats suivants:

C:\server\www\dev\wordpress\src>ack --files-with-matches --literal "require_once( dirname( __FILE__ ) . '/admin.php' );"
wp-admin/about.php
wp-admin/admin-header.php
wp-admin/comment.php
wp-admin/credits.php
wp-admin/customize.php
wp-admin/edit-comments.php
wp-admin/edit-tags.php
wp-admin/edit.php
wp-admin/export.php
wp-admin/freedoms.php
wp-admin/import.php
wp-admin/index.php
wp-admin/link-add.php
wp-admin/link-manager.php
wp-admin/link.php
wp-admin/media-new.php
wp-admin/media-upload.php
wp-admin/media.php
wp-admin/ms-admin.php
wp-admin/ms-delete-site.php
wp-admin/ms-edit.php
wp-admin/ms-options.php
wp-admin/ms-sites.php
wp-admin/ms-themes.php
wp-admin/ms-upgrade-network.php
wp-admin/ms-users.php
wp-admin/my-sites.php
wp-admin/nav-menus.php
wp-admin/network/about.php
wp-admin/network/credits.php
wp-admin/network/edit.php
wp-admin/network/freedoms.php
wp-admin/network/index.php
wp-admin/network/plugin-editor.php
wp-admin/network/plugin-install.php
wp-admin/network/plugins.php
wp-admin/network/profile.php
wp-admin/network/settings.php
wp-admin/network/setup.php
wp-admin/network/site-info.php
wp-admin/network/site-new.php
wp-admin/network/site-settings.php
wp-admin/network/site-themes.php
wp-admin/network/site-users.php
wp-admin/network/sites.php
wp-admin/network/theme-editor.php
wp-admin/network/theme-install.php
wp-admin/network/themes.php
wp-admin/network/update-core.php
wp-admin/network/update.php
wp-admin/network/upgrade.php
wp-admin/network/user-edit.php
wp-admin/network/user-new.php
wp-admin/network/users.php
wp-admin/network.php
wp-admin/options-discussion.php
wp-admin/options-general.php
wp-admin/options-media.php
wp-admin/options-permalink.php
wp-admin/options-reading.php
wp-admin/options-writing.php
wp-admin/options.php
wp-admin/plugin-editor.php
wp-admin/plugin-install.php
wp-admin/plugins.php
wp-admin/post-new.php
wp-admin/post.php
wp-admin/press-this.php
wp-admin/revision.php
wp-admin/term.php
wp-admin/theme-editor.php
wp-admin/theme-install.php
wp-admin/themes.php
wp-admin/tools.php
wp-admin/update-core.php
wp-admin/update.php
wp-admin/upload.php
wp-admin/user/about.php
wp-admin/user/credits.php
wp-admin/user/freedoms.php
wp-admin/user/index.php
wp-admin/user/profile.php
wp-admin/user/user-edit.php
wp-admin/user-edit.php
wp-admin/user-new.php
wp-admin/users.php
wp-admin/widgets.php
2
Rarst

J'utilise cette commande bash pour réinitialiser rapidement et facilement les autorisations sur les fichiers WordPress. Il suffit simplement de naviguer dans le dossier racine WP et de lancer les deux:

des annuaires

find . -type d -exec chmod 755 {} \;

des dossiers

find . -type f -exec chmod 644 {} \;

0
Vinnie James

Les autorisations de fichiers/dossiers WordPress doivent être les suivantes.

Pour les annuaires: 755

Pour les fichiers: 644

Sauf les suivantes:

/ wp-content/774

/ wp-content/themes/= 755 ou 775 (défini pour autoriser la modification)

/ wp-content/plugins/= 755 Certains plugins se plaindront mais s’ils ont besoin d’un accès en écriture, ils vous le feront savoir.

/ wp-content/uploads/= 775 cocher pour appliquer de manière récursive uniquement aux répertoires. Les fichiers de ce dossier auront des autorisations différentes selon ce qu’ils sont.

Ne jamais utiliser 777

Les informations fournies dans les pages suivantes vous aideront.

http://codex.wordpress.org/Changing_File_Permissionshttp://codex.wordpress.org/Hardening_WordPresshttps://stackoverflow.com/a/18352747/1287548http : //www.smashingmagazine.com/2014/05/08/proper-wordpress-filesystem-permissions-ownerships/

Pour autoriser/interdire l'exécution du fichier à l'aide de .htaccess, voir les réponses fournies dans les discussions et les pages suivantes.

https://stackoverflow.com/a/8415600/1287548https://stackoverflow.com/a/11950077/1287548http://www.wpbeginner.com/wp-tutorials/ comment-désactiver-exécution-php-dans certains répertoires wordpress/http://perishablepress.com/stupid-htaccess-tricks/

0
Vinod Dalvi