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:
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>
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
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:
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
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/