Laravel et sécurité
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
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.
Merci du conseil
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
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.
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 .
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 ?
Je trouve cela normal d'avoir autant de laravel que de sites.
Mais pour l'admin ... j'ai de gros doutes
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
...
}
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 !
Vous ne pouvez pas répondre à ce sujet.