Quelques directives pour apache

Date 04/06/2008 | Sujet : 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.



Cet article provient de Communauté Francophone des Utilisateurs de Xoops
http://www.frxoops.org

L'adresse de cet article est :
http://www.frxoops.org/modules/news/article.php?storyid=1492