Le bar

Laravel et sécurité

Avatar de leir80
leir80

Bonjour à tous,

j'ai une petite question concernant un projet que je dois débuter. En effet, mon frère a un commerce et j'aimerais lui créer une petite interface d'administration où il pourrait entrer les ventes des jour, ses produits, etc. Ce ne sont pas des informations confidentielles, mais tout de même un peu sensibles.

Ce que j'ai prévu de faire, c'est :
1/ Comme je suis sur un mutualisé OVH, je vais créer un sous-dossier sur son site web, avec l'application d'administration dedans, et qu'il puisse y accéder via l'URL www.sous-dossier.sonsite.com - avec bien sûr aucun lien nulle part vers cette portion du site depuis le site public. Je nommerai le sous-dossier autrement que 'adm' évidemment.
2/ Un formulaire à l'entrée du site, pour se logger via Auth::attempt()
3/ Des filtres sur chaque contrôler qui redirigeraient les guest() et tous ceux qui n'auraient pas un user_status prédéfini.

Voilà, est-ce que je dois prendre des mesures particulières en plus, comme par exemple protéger mon formulaire de login ? J'ai cru comprendre que Laravel esquivait déjà les attaques de type injection, etc. Y a-t-il d'autres choses auxquelles je dois faire gaffe ?

Merci d'avance pour vos conseils :)

Posté il y a 7 ans
Avatar de JulienTant
JulienTant

Pas particulièrement. Assures toi que le filtre Auth soit appliqué partout, sauf sur ta page de login. Et éventuellement, passe le site en HTTPS.

Posté il y a 7 ans
Avatar de leir80
leir80

Merci du conseil :)

Posté il y a 7 ans
Avatar de papajoker
papajoker

Bonjour,
il est aussi possible (parfois) de filtrer les entrées par ip

et avec un .htaccess c'est très simple :

Order deny,allow
Allow from 72.234.123.117 # acces depuis maison
Allow from 72.101.142.0/24 # acces depuis travail
Deny from all
Posté il y a 7 ans
Avatar de leir80
leir80

Merci de l'idée. Est-il possible d'utiliser ce filtre avec une adresse no-ip par exemple ? Je n'ai pas d'IP fixe, ni l'autre utilisateur d'ailleurs :)

Edit : j'ai trouvé la réponse à ma question, ce n'est pas possible. Il faudrait que je passe par un proxy à IP fixe pour garder toujours la même.

Posté il y a 7 ans
Avatar de bestmomo
bestmomo

Je ne comprends pas trop l'architecture des dossiers sur ton serveur. Si tu crée un sous-dossier pour une installation Laravel du coup les dossiers normalement inaccessibles de Laravel le deviennent, ou alors j'ai rien compris :ermm: .

Posté il y a 7 ans
Avatar de leir80
leir80

J'ai la structure suivante à la base de mon dossier root :

- www.monsite1.com
---- une app laravel
- www.monsite2.com
---- une autre app laravel
- www.monsite3.com
---- etc
- www (le dossier par défaut)
---- idem

Le tout avec des .htaccess pour rediriger vers le dossier public de laravel dans chaque cas. C'est dans monsite1.com que je veux faire un sous-dossier. J'aurais alors :

- www.monsite1.com
---- une app laravel
---- un_sous_dossier
-------- une autre app laravel, comlètement différent, avec une DNS qui pointe dessus, genre www.un_sous_dossier.monsite1.com

Je pense bien que tout cela est très lourd, mais j'ai préféré séparer toutes les applications de mes sites. C'est un peu le bordel étant donné que c'est un hébergement multi-domaines.

Pour le cas de la section administration de monsite1.com, j'ai également préféré faire une autre application à part entière, pour une question de sécurité. L'adresse même du site ne serait présente nulle part, alors qu'il est facile d'arriver sur www.monsite1.com et de "fouiller" pour trouver un espace adm.

Ai-je tout faux ?

Posté il y a 7 ans
Avatar de papajoker
papajoker

Je trouve cela normal d'avoir autant de laravel que de sites.

Mais pour l'admin ... j'ai de gros doutes 8-)
Les modèles sont impérativement les mêmes et toi tu as duplications :( tu dois trembler pour les maj :)

leir8 :alors qu'il est facile d'arriver sur www.monsite1.com et de "fouiller" pour trouver un espace adm.

rien ne t'empêche d'avoir une url d'admin type : site.fr/1f3870be274f61f3870be274f6c49b3ec49b3e31a1f3870be274f6c49b3e0c6728957f/

et tu peux en + la faire changer en fonction d'une date et/ou de l'administrateur. Il faut alors un générateur local d'url admin ! mais la on entre en parano car cela signifie que tu n'as aucune confiance au contrôle de mdp de laravel :(
générer tes routes admin (dans routes.php) par un   md5($pseudo_admin1) /* .md5($mois.$an) */  md5($pseudo_admin_2)

//app/routes.php
$route='admin';
$route= md5($pseudo_admin1.'suis parano !').md5( date(F-Y).'la route administrateur mensuelle') ;
Route::group(array('prefix' => $route), function(){
   // toutes mes url admin
...
}
Posté il y a 7 ans
Avatar de leir80
leir80

Merci de ta réponse. Finalement, je pense que je vais tout laisser dans le même dossier. Comme tu me l'as fait remarquer, ça peut poser problème pour certaines màj si je split tout ça.

Et merci à tous !

Posté il y a 7 ans

Vous ne pouvez pas répondre à ce sujet.