PHP
est
un
langage
puissant
et
l'
interpréteur
,
qu'il
soit
inclus
dans
le
serveur
web
ou
bien
compilé
en
version
CGI
,
est
capable
d'accéder
aux
fichiers
,
d'exécuter
des
commandes
et
d
'ouvrir
des
connexions
réseaux
.
Toutes
ces
propriétés
rendent
fragile
la
sécurité
d
'
un
serveur
web
.
Le
langage
PHP
a
été
pensé
afin
d
'
être
un
langage
beaucoup
plus
sécurisé
pour
écrire
des
CGI
que
le
Perl
ou
le
langage
C
.
De
plus
,
une
sélection
rigoureuse
des
options
de
compilation
et
d'
exécution
vous
permettra
d
'obtenir
un
équilibre
parfait
entre
liberté
et
sécurité
.
Etant
donné
qu'
il
y
a
de
nombreux
moyens
d'utiliser
le
langage
PHP
,
il
y
a
de
nombreuses
directives
de
configuration
afin
d
'en
contrôler
le
comportement
.
Un
grand
nombre
d'
options
permettent
d'utiliser
le
PHP
dans
de
nombreuses
situations
,
mais
cela
signifie
aussi
qu'il
y
a
certaines
combinaisons
d'options
de
compilation
et
d
'exécution
qui
fragilisent
la
sécurité
du
serveur
.
Ce
chapitre
explique
comme
les
différentes
options
de
configurations
peuvent
être
combinées
,
tout
en
conservant
une
sécurité
maximum
.
La
flexibilité
de
configuration
de
PHP
est
épaulée
par
la
flexibilité
du
code
.
PHP
peut
être
compilé
pour
constituer
une
application
serveur
complète
,
avec
toutes
les
fonctionnalités
d'
un
shell
,
ou
il
peut
encore
être
utilisé
comme
simple
SSI
(server
side
include
)
avec
peu
de
risque
,
dans
un
environnement
à
sécurité
renforcée
.
Comment
créer
cet
environnement
et
le
sécuriser
est
largement
à
la
charge
du
développeur
PHP
.
Ce
chapitre
commence
par
expliquer
les
différentes
options
de
configuration
et
les
situations
dans
lesquelles
elles
peuvent
être
utilisées
en
toute
sécurité
.
Puis
,
viennent
les
considérations
de
niveaux
de
sécurité
,
et
les
conseils
généraux
.
Considérations générales
Un
système
complètement
sûr
est
une
impossiblité
virtuelle
.
L'
approche
souvent
utilisée
par
les
professionnels
de
la
sécurité
est
d'équilibrer
les
risques
et
l
'ergonomie
.
Si
chaque
variable
fournie
par
l'
utilisateur
demandaient
deux
formes
de
validation
biométrique
(un
scan
de
la
rétine
et
une
empreinte
digitale)
,
on
obtiendrait
un
système
avec
un
niveau
de
sécurité
d
'un
bon
niveau
.
Il
faudrait
aussi
une
bonne
heure
pour
remplir
un
formulaire
simple
,
ce
qui
encouragerait
les
utilisateurs
à
trouver
un
moyen
de
contourner
cette
sécurité
.
La
meilleure
sécurité
est
suffisamment
discrète
pour
assurer
un
maximum
de
sécurité
sans
ajouter
de
contraintes
insurmontables
pour
l
'
utilisateur
ou
de
systèmes
complexes
de
programmation
.
Souvent
,
les
attaques
sur
un
script
sont
des
exploitations
des
sysèmes
de
sécurité
trop
complexes
,
qui
s
'
érodent
au
cour
du
temps
.
Un
principe
qu
'
il
est
bon
de
retenir
:
Un
système
est
aussi
sur
que
son
maillon
le
plus
faible
.
Si
toutes
les
transactions
sont
bien
notées
dans
une
base
,
avec
confirmation
mais
que
l'
utilisateur
n
'est
authentifiée
que
par
un
cookie
,
la
robustesse
de
votre
système
est
sévèrement
réduite
.
Lorsque
vous
testez
votre
site
,
gardez
en
tête
que
vous
ne
pourrez
jamais
tester
toutes
les
situations
,
même
pour
les
pages
les
plus
simples
.
Les
valeurs
que
vous
attendez
seront
toujours
complétement
différentes
des
valeurs
qu
'
un
employé
négligent
,
un
hacker
qui
a
toute
la
nuit
devant
lui
ou
encore
le
chat
de
la
maison
qui
marche
sur
le
clavier
.
C'
est
pourquoi
il
est
préférable
de
regarder
le
code
d'un
point
de
vue
logique
,
pour
repérer
les
points
d
'entrée
des
données
inattendues
,
puis
de
voir
comment
elles
pourront
être
modifiées
,
amplifiées
ou
réduites
.
L'
Internet
est
rempli
d'individu
qui
tentent
de
se
faire
une
renommée
en
piratant
vos
programmes
,
en
bloquant
votre
site
,
en
envoyant
des
contenus
inappropriés
,
qui
rendent
vos
journées
si
"spéciales
"
.
Peut
importe
que
vous
ayez
un
grand
portail
ou
un
petit
web
,
vous
pouvez
être
la
cible
pour
tout
quidam
avec
une
connexion
.
Vous
êtes
une
cible
potentielle
dès
que
vous
êtes
connecté
vous-même
.
Certains
programmes
de
piratage
ne
font
pas
dans
la
demi-mesure
,
et
testent
systématiquement
des
millions
d
'
IP
,
à
la
recherche
de
victimes
:
ne
soyez
pas
la
prochaine
.