Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2
3
Introduction
L'auteur
Je suis Julio Potier, Consultant en Sécurité Web, Ingénieur et
Formateur WordPress, créateur de l'extension de Sécurité WordPress
SecuPress.
Où me trouver :
● Dans mon bureau devant mon PC,
● Sur mon blog technique sur lequel je crée des articles relatifs au
développement sous WordPress : http://www.boiteaweb.fr
● Sur le Slack de WordPress-fr : https://wordpressfr.slack.com/
● Sur le site de SecuPress : http://www.secupress.pro
● Sur Twitter : @boiteaweb et @SecuPress
● En invité sur quelques blogs WordPress comme GeekPress.fr,
WPChannel.com, ScreenFeed.fr, WPFormation.com …
4
configuration wp-config.php ne doit plus avoir de secret pour vous après
la lecture de ce livre.
J'ai créé un Guide complet sur les constantes PHP33 sur mon blog
qui vous aidera encore. Je parle aussi du fichier wp-config.php lui même.
Comment fonctionne-t-il, que fait-il là, que peut-on en faire etc.
5
Comment lire ce livre ?
Les constantes forment la plus grande partie de ce livre. Elles
sont toutes formatées de la même façon, celle-ci :
NOM DE LA CONSTANTE
Type : string - Valeur par défaut : "chaîne"
Description : Courte description.
Explications longues contenant d es mots inclus dans le
code. Et aussi des morceaux plus complet comme :
<?php echo 'Snippet de code PHP sur fond gris police
"Consolas"'; // Commentaire ?>
6
7
8
9
Le fichier wp-config.php
Car c'est tout de même de lui dont on parle ici, ce fichier de
configuration, nous l'appellerons comme ça dans le reste du livre :
"fichier de configuration".
10
1. Déplacer le fichier de configuration
a. Façon hiérarchique
11
dossiers contenant d'autres installations. Ce /www/ ne doit pointer vers
3. Des astuces en plus
a. Au diable ABSPATH
WPINC
Type : string - Valeur par défaut : "wp-includes"
Description : Contient le nom du dossier des inclusions du core de WP
WP_CONTENT_DIR
Type : string - Valeur par défaut : "ABSPATH . 'wp-content'"
Description : Contient le chemin absolu vers le dossier des contenus
WordPress.
13
WP_CONTENT_URL
Type : string - Valeur par défaut : "get_option( 'siteurl' ) .
'/wp-content'"
Description : Contient l'URL vers le dossier des contenus WordPress.
WP_HOME
Type : string - Valeur par défaut : aucune
Description : Contient l'URL de l'accueil de votre site.
14
Puis comme son site reçoit de la requête de la part du votre, il
prends la main et redirige la page sur SON url, votre site s'est fait
remplacer par un clone dans un pays de l'est, aïe. Le fait d'utiliser les
constantes empêche cette option d'être modifiée.
Exemple d'utilisation :
define( 'WP_HOME', 'https://www.example.com' );
WP_SITEURL
Type : string - Valeur par défaut : aucune
Description : Contient l'URL de votre site incluant le sous-dossier s'il
existe.
15
8. Les constantes des crons
Un cron est un programme qui permet aux utilisateurs des
systèmes Unix d'exécuter automatiquement des scripts, des commandes
ou des logiciels à une date et une heure spécifiées à l'avance, ou selon
un cycle défini à l'avance. (Source : Wikipédia)
DISABLE_WP_CRON
Type : bool - Valeur par défaut : "FALSE"
Description : Permet de désactiver totalement les crons WordPress.
ALTERNATE_WP_CRON
Type : bool - Valeur par défaut : "FALSE"
Description : Utilisé dans le cas où vos publication planifiées ne sont pas
visibles en temps voulu.
16
Les constantes PHP
Au delà de WordPress il y a le PHP, PHP c'est quoi : de son
ancien nom "Personal Home Page" devenu "PHP: Hypertext
Preprocessor", il s'agit d'un langage de scripts libre principalement
utilisé pour produire des pages Web dynamiques via un serveur HTTP.
Je ne vais pas vous lister toutes les constantes PHP, loin de là,
mais je vais vous en donner suffisamment pour que vous puissiez les
utiliser dans vos développements WordPress, espérant vous en
apprendre certaines !
17
define(), constant() et compagnie
Le guide complet
Il devient rare qu’une extension, un thème, ou un projet PHP ne
contienne pas de constantes PHP. Vous en utilisez surement aussi. Voici
quelques subtilités qui devraient vous laisser perplexe, je vais non
seulement jouer avec le code mais aussi avec les versions PHP pour
nous rappeler à tous que la rétrocompatibilité est toujours au
rendez-vous.
Rappel
Une constante, à l’opposé d’une variable, est constante est ne
peut pas varier. J’ai l’impression de me répéter. La constante ne pourra
donc jamais être modifiée en cours de script alors qu’une variable a pour
but de pourvoir varier, et même exister ou non. Une constante ne peut
pas non plus être supprimée.
Dans ce chapitre je ne vais retourner plus loin que PHP 5.0, c’est
déjà pas mal, et trop à la fois.
define()
La façon la plus courante et la plus connue pour déclarer une
constante.
var_dump( FOO );
// string(3) "bar"
18
Sachez qu’il est possible de définir une constante dans une
19
Table des matières
Introduction 5
L'auteur 5
Pourquoi ce livre ? 5
Pour qui ce livre ? 6
Que contient ce livre ? 6
Comment lire ce livre ? 7
Le fichier wp-config.php 11
1. Déplacer le fichier de configuration 12
a. Façon hiérarchique 12
b. Façon inclusion 13
2. Protéger le fichier de configuration 14
a. La façon Apache/Nginx 14
b. La façon chmod 15
3. Des astuces en plus 16
a. Au diable ABSPATH 16
b. Au diable les clés de sécurité 16
4. Le fichier wp-config-sample.php 17
5. Une globale 18
$TABLE_PREFIX 18
20
WP_TEMP_DIR 25
ENVIRONMENT 26
STATICPATH 27
b. Les chemins de langues 27
WP_LANG_DIR 27
c. Les chemins des extensions 28
WP_PLUGIN_DIR 28
WP_PLUGIN_URL 28
WPMU_PLUGIN_DIR 28
WPMU_PLUGIN_URL 29
d. Les chemins des thèmes 29
TEMPLATEPATH 29
STYLESHEETPATH 30
d. Les autres chemins 31
GETID3_TEMP_DIR 31
2. Les constantes WordPress utiles 31
a. Les constantes de temps humainement lisibles 31
MINUTE_IN_SECONDS 31
HOUR_IN_SECONDS 31
DAY_IN_SECONDS 31
WEEK_IN_SECONDS 31
MONTH_IN_SECONDS 31
YEAR_IN_SECONDS 32
b. Les constantes de poids humainement lisibles 32
KB_IN_BYTES 32
MB_IN_BYTES 32
GB_IN_BYTES 32
TB_IN_BYTES 32
c. Les constantes diverses 32
WP_MAX_MEMORY_LIMIT 32
WP_MEMORY_LIMIT 33
WPLANG ⚠ Dépréciée depuis WordPress 4.0. 33
21
SHORTINIT 34
RESET_CAPS 34
3. Les constantes d'administration 35
a. Les constantes de sécurité 35
FORCE_SSL_ADMIN 35
FORCE_SSL_LOGIN 35
DISALLOW_FILE_EDIT 36
DISALLOW_FILE_MODS 36
DISALLOW_UNFILTERED_HTML 36
b. Les constantes de développements 37
WP_ADMIN 37
WP_NETWORK_ADMIN 38
WP_USER_ADMIN 38
WP_BLOG_ADMIN 39
AUTOMATIC_UPDATER_DISABLED 39
WP_AUTO_UPDATE_CORE 39
IMAGE_EDIT_OVERWRITE 39
MEDIA_TRASH 40
d. Les constantes des utilisateurs 40
IS_PROFILE_PAGE 40
e. Les constantes des publications 41
WP_MAIL_INTERVAL 41
REST_API_VERSION 41
REST_REQUEST 41
XMLRPC_REQUEST 41
DOING_AUTOSAVE 42
DOING_AJAX 42
f. Les constantes des extensions 43
WP_UNINSTALL_PLUGIN 43
g. Les constantes inclassables 43
IFRAME_REQUEST 43
4. Les constantes de cookies 44
22
a. Les constantes de nommage 44
COOKIEHASH 44
TEST_COOKIE 45
AUTH_COOKIE 45
SECURE_AUTH_COOKIE 45
PASS_COOKIE 45
LOGGED_IN_COOKIE 46
USER_COOKIE 46
b. Les constantes des chemins des cookies 46
COOKIEPATH 46
SITECOOKIEPATH 47
ADMIN_COOKIE_PATH 47
PLUGINS_COOKIE_PATH 47
COOKIE_DOMAIN 47
5. Les constantes des clés de sécurité 48
a. Les constantes des clés de sécurité 50
AUTH_KEY 50
AUTH_SALT 50
SECURE_AUTH_KEY 50
SECURE_AUTH_SALT 50
LOGGED_IN_KEY 50
LOGGED_IN_SALT 51
NONCE_KEY 51
NONCE_SALT 51
SECRET_KEY & SECRET_SALT 51
6. Les constantes de thèmes 52
a. Les constantes de la personnalisation 52
BACKGROUND_COLOR 52
BACKGROUND_IMAGE 53
NO_HEADER_TEXT 54
HEADER_TEXTCOLOR 55
HEADER_IMAGE 55
23
HEADER_IMAGE_WIDTH 56
HEADER_IMAGE_HEIGHT 56
b. Les constantes inclassables 57
WP_USE_THEMES 57
WP_DEFAULT_THEME 57
7. Les constantes d'uploads 58
a. Les constantes des chemins des uploads 58
UPLOADBLOGSDIR 58
UPLOADS 58
BLOGUPLOADDIR 59
b. Les constantes de sécurité 60
ALLOW_UNFILTERED_UPLOADS 60
8. Les constantes des crons 61
a. Les constantes des crons 61
DISABLE_WP_CRON 61
ALTERNATE_WP_CRON 61
WP_CRON_LOCK_TIMEOUT 62
DOING_CRON 62
9. Les constantes du MultiSite 63
a. Les constantes du site courant 63
BLOG_ID_CURRENT_SITE 63
SITE_ID_CURRENT_SITE 63
DOMAIN_CURRENT_SITE 63
PATH_CURRENT_SITE 64
b. Les constantes d'activation du MultiSite 64
MULTISITE 64
WP_ALLOW_MULTISITE 64
ALLOW_SUBDIRECTORY_INSTALL 65
SUBDOMAIN_INSTALL 66
c. Les constantes d'entête HTTP 67
NOBLOGREDIRECT 67
WPMU_ACCEL_REDIRECT 67
24
WPMU_SENDFILE 68
d. Les constantes inclassables 68
SUNRISE 68
WP_INSTALLING_NETWORK 69
DIEONDBERROR 69
ERRORLOGFILE 70
10. Les constantes pour les publications 70
a. Les constantes de sauvegarde 71
AUTOSAVE_INTERVAL 71
WP_POST_REVISIONS 71
DOING_AUTOSAVE 72
EMPTY_TRASH_DAYS 72
WP_LOAD_IMPORTERS 73
COMMENTS_TEMPLATE 73
11. Les constantes d'optimisation 73
a. Les constantes des fichiers statiques 74
COMPRESS_CSS 74
COMPRESS_SCRIPTS 74
CONCATENATE_SCRIPTS 74
ENFORCE_GZIP 75
b. Les constantes de mises à jour 75
CORE_UPGRADE_SKIP_NEW_BUNDLED 75
DO_NOT_UPGRADE_GLOBAL_TABLES 76
c. Les constantes de sécurité 76
WP_FEATURE_BETTER_PASSWORDS 76
12. Les constantes de débogage 77
a. Les constantes de débogage 77
WP_DEBUG 77
WP_DEBUG_DISPLAY 77
WP_DEBUG_LOG 78
SCRIPT_DEBUG 78
ERRORLOGFILE 79
25
13. Les constantes du FTP 79
a. Les constantes de base 79
FTP_HOST 79
FTP_USER 80
FTP_PASS 80
b. Les constantes des chemins 80
FTP_BASE 80
FTP_CONTENT_DIR 80
FTP_PLUGIN_DIR 81
FTP_LANG_DIR 81
c. Les constantes avancées 81
FS_METHOD 81
FS_CONNECT_TIMEOUT 82
FS_TIMEOUT 82
FTP_SSL 82
FTP_SSH 83
FTP_PUBKEY 83
FTP_PRIKEY 83
FTP_FORCE 84
FS_CHMOD_DIR 84
FS_CHMOD_FILE 84
CRLF 85
14. Les constantes de base de données 85
a. Les constantes de base 85
DB_HOST 85
DB_NAME 85
DB_USER 86
DB_PASSWORD 86
DB_CHARSET 86
DB_COLLATE 87
DIEONDBERROR 87
b. Les constantes avanceés 87
26
CUSTOM_USER_TABLE 87
CUSTOM_USER_META_TABLE 88
SAVE_QUERIES 88
MYSQL_NEW_LINK 89
MYSQL_CLIENT_FLAGS 90
c. Les constantes des outils et de développements 90
WP_ALLOW_REPAIR 90
WP_REPAIRING 91
WP_IMPORTING 91
WP_INSTALLING 91
WP_SETUP_CONFIG 92
15. Les constantes de l'accès vers l'extérieur 92
a. Les constantes de sécurité 92
WP_HTTP_BLOCK_EXTERNAL 92
WP_ACCESSIBLE_HOSTS 93
b. Les constantes du proxy 93
WP_PROXY_HOST 93
WP_PROXY_PORT 93
WP_PROXY_BYPASS_HOSTS 94
WP_PROXY_USERNAME 94
WP_PROXY_PASSWORD 95
17. Les constantes de cache 95
WP_CACHE 95
DONOTCACHEPAGE 95
18. Les constantes non WordPress 96
27
__LINE__ 101
__FILE__ 101
__DIR__ 101
__FUNCTION__ 102
__CLASS__ 102
__METHOD__ 102
28
29
Tous les secrets de
WordPress
30
https://creativecommons.org/licenses/by/2.0/fr/
31
32