PhpMyNewsLetter 2.0

Support et annonces PhpMyNewsLetter.

Vous n'êtes pas identifié(e).

Annonce

Pour me permettre de mieux vous aider au mieux, merci d'être le plus précis possible en donnant :
- la version de phpmynewsletter utilisée
- votre hébergement : personnel, dédié, mutualisé
- votre hébergeur (OVH, free, Infomaniak, 1and1,...)
- votre OS : linux, windows
- version de PHP (5.3, 5.6, 7.0, hhvm...)
Toutes les réponses à mes questions qui sont sans retour de votre part seront considérées comme résolues !

#1 02-03-2018 13:06:19

archeo
Membre

Comment sécuriser l'installation de phpmynewsletter?

Bonjour,

Je me lance car je n'ai rien trouvé de spécifique sur le forum. Il y a déjà des fichiers index.php dans les répertoires (sauf js) qui redirige vers la racine du domaine pour décourager les curieux. Je pose les questions suivantes :
Jusqu'où peut-on limiter les droits des répertoires et des fichiers sans bloquer le fonctionnement?
Une protection de config.php par .htaccess est-elle superflue? Doit-on limiter les droits à 400 quitte à modifier si on modifie la configuration?

Voilà j'espère ne pas être hors sujet ou paraitre stupide ops


Hébergement : OVH mutualisé
OS : windows 7 + wampserveur 3.03
PHP 7 et MySQL 5.6
Windows 1, 2, 3 ,95, 98, XP, Vista, seven, 10, Gem, Geoworks, Prologue, LSE lol

Hors ligne

#2 02-03-2018 13:53:20

Arnaud
Administrateur

Re : Comment sécuriser l'installation de phpmynewsletter?

Excellente question !  cool

Bonjour Archeo  wink
Tout d'abord préciser que je viens de compléter les index.php manquants dans les répertoires.
La version est mise à jour des fichiers index.php manquants :
https://www.phpmynewsletter.com/forum/t … age-1.html en faisant référence à ce post.

J'ai le choix de 2 réponses :
- La mauvaise réponse : je ne fais qu'écrire PhpMyNewsLetter, chaque admin administre son serveur et doit connaître les règles de base  hmm
- Une meilleure réponse :
Oui, on peut protéger davantage !
(Dans l'ordre de ce à quoi je pense, désolé si j'en oublie !)
- Rajouter les index.php qui sont les premières pages appelées dans un répertoire quand il y a référence à un chemin et non une page dans un répertoire. Ce que je suis en train de faire, et dont évolution à suivre.
- Dans la configuration apache (je suis sous NGinX, donc à vous de vérifier en fonction de apache 1.3, 2.2 ou 2.4 ou autre...), supprimer la possibilité de parcourir un répertoire avec :

Options -Indexes

Dans les répertoires :
upload/      css/    images/    logs/
vous pouvez aussi interdire l'exécution de php en posant un .htaccess dans chacun de ces répertoires avec :

<Files *.php>
deny from all
</Files>

Evidemment ajuster les paramètres si vous avez des fichiers php3, php5, inc, etc...
- Passer en https (Let's Encrypt est juste extraordinaire ! J'adore ce projet, et en plus ça permet http/2. Ce portail estd'ailleurs dynamiser par NGinX, Let's Encrypt et profite du full http/2)
- Sécuriser un peu php via le php.ini :

; Ne pas affaicher les erreurs sur écran
display_errors = off
; Autoriser l'écriture des erreurs en log
log_errors = on
; Ne pas afficher la version de php dans les headers : X-Powered-By header:
expose_php = off
; profitez en pour cacher le script qui envoie les mails :
mail.add_x_header = Off
; et logger les mails envoyés par php_mail (si vous l'utilisez) :
mail.log = /var/log/phpmail.log

- concernant config.php, il faut savoir que c'est un fichier qui peut être réécrit par PhpMyNewsLetter, il faudrait idéalement laisser les droits en écriture !
Dans l'odre c'est owner/group/other donc laisser un 600 si on n'a pas encore stabilisé la config, ou effectivmeent 400 si on a validé la config.
A noter : il y a aussi le fichier de config des mails en bounce, config_bounce.php, donc la commande :

chmod 600 config*.php

- et enfin pour protéger ce fichier config, une directive rapide trouvée sur stackoverflow :

### https://stackoverflow.com/a/22049769

# password protect single file
<IfModule mod_auth.c>
 <Files "protected.html">
  AuthName "Username and password required"
  AuthUserFile /home/path/.htpasswd
  Require valid-user
  AuthType Basic
 </Files>
</IfModule>

(remplacer proetcted.html par config.php et adapter les chemin de .htpasswd).

Sinon, il reste beaucoup de choses à faire pour protéger un serveur, mais je crois qu'il y a des forums spécialisés pour ça. Nous sommes restés ici dans le cadre de PhpMyNewsLetter.


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#3 02-03-2018 14:58:51

archeo
Membre

Re : Comment sécuriser l'installation de phpmynewsletter?

Je préfère votre deuxième bonne réponse smile merci pour tous ces détails

interdire l’accès à config.php depuis le.htaccess à la racine de l'hébergement (monrep est le répertoire d'installation de phpmynewsletter)

<Files monrep/include/config.php>
order allow,deny
deny from all
</Files>

Il faut y aller mollo avec les droits des fichiers et dossiers. Je suis habitué à CMSmadeSimple qui s’accommode de droits très restreints (respectivement 444 et 555). En appliquant ça à phpmynewsletter j'ai tout planté devil .

Protéger l’accès au répertoire monrep par un mot de passe car sinon on tombe directement sur l'administration de phpmynewsletter. Personnellement j'aurais préféré accéder à l'administration par un sous-répertoire admin que l'on puisse renommer à sa guise en indiquant le nouveau nom dans config.php.


Hébergement : OVH mutualisé
OS : windows 7 + wampserveur 3.03
PHP 7 et MySQL 5.6
Windows 1, 2, 3 ,95, 98, XP, Vista, seven, 10, Gem, Geoworks, Prologue, LSE lol

Hors ligne

#4 02-03-2018 15:11:58

Arnaud
Administrateur

Re : Comment sécuriser l'installation de phpmynewsletter?

Attention à ne pas tout bloquer non plus !
Les images ajoutées aux newsletter, sauf si elles sont en lien depuis l'extérieur pourraient ne pas être accessibles.
Je ne comprends pas le droit en 5... Bizarre comme droit... Le moteur php lit les fichiers php, les mouline, et restitue une page web par exemple. Il n'est pas exécuté directement comme un shell.


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

#5 02-03-2018 15:52:47

archeo
Membre

Re : Comment sécuriser l'installation de phpmynewsletter?

Un 554 sur un répertoire provoque :
Forbidden

You don't have permission to access /monrep/login.php on this server.
Server unable to read htaccess file, denying access to be safe

Pour moi les droits sont un mystère qui demeure impénétrable!

Pour ne pas tomber sur le loggin il y a une solution toute bête : renommer loggin.php quand on ne se sert pas de phpmynewsletter

Dernière modification par archeo (02-03-2018 16:07:01)


Hébergement : OVH mutualisé
OS : windows 7 + wampserveur 3.03
PHP 7 et MySQL 5.6
Windows 1, 2, 3 ,95, 98, XP, Vista, seven, 10, Gem, Geoworks, Prologue, LSE lol

Hors ligne

#6 02-03-2018 16:22:56

Arnaud
Administrateur

Re : Comment sécuriser l'installation de phpmynewsletter?

Pourquoi pas !
En tout état de cause, peut être penser à une évolution...


Je prends le temps de créer un outil pour tous, de niveau professionnel, mais simple !
Il n'est pas encore parfait, soyez indulgents, ça vient...
Si vous avez des questions, n'hésitez pas ! Mais soyez précis pour une réponse plus rapide  wink

Hors ligne

Pied de page des forums

Propulsé par FluxBB