IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Pourquoi ne faut-il pas réinventer la roue ? [Débat]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Avatar de Shinja
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2012
    Messages : 153
    Points : 156
    Points
    156
    Par défaut Pourquoi ne faut-il pas réinventer la roue ?
    Salut, je viens poser un débat autour de la réalisation d'un site web fait-maison en PHP et ceux développé avec CMS. A chaque fois que je parle de créer un site de A à Z, on me dit que ce n'est pas la peine de réinventer la roue et qu'il existe beaucoup de CMS qui permettent de bosser plus rapidement. Alors oui c'est vrai, quand j'utilise un CMS j'obtiens un résultat sans trop forcer, mais quand on cherche quelque chose de spécifique il faut bidouiller et parfois se torturer l'esprit alors que cela serait nettement plus simple d'avoir créer son site à la main.

    Un exemple tout bête, pour modifier l'apparence de la page de login de WordPress j'ai dû recourir à du jQuery pour modifier le style css de chaque élément pour apporter mon propre style. Oui, il existe une fonction pour cela mais on ne peut pas tout modifier. Pour des raisons personnelles, j'ai décidé de créer deux sites à la main. Au début j'ai pas mal ramé, car j'ai dû écrire pas mal de fonctions pour me simplifier la vie, mais une fois crées, franchement je trouve que ça marche au poil et ça me facilite plus la vie qu'un CMS.

    Alors, je ne sais pas quoi penser vis à vis des CMS surtout quand on cherche à avoir le contrôle sur chaque élément. De plus, il est possible d'optimiser son code pour alléger au maximum le chargement d'une page.

    Et vous qu'en pensez-vous ?

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Il n'y a pas débat. Le tout c'est de trouver la réponse la plus appropriée à ta problématique. Est-ce que tes besoins peuvent être résolus plus facilement, plus rapidement et avec une meilleure sécurité par un CMS, un framework, des composants ou un code from scratch? Si c'est le cas, il n'y a pas à réflechir, il faut adopter la solution qui convient. Sinon, il faut écrire soi-même ce dont on a besoin.

    Le problème tient plus à la difficulté à définir la problématique (parce que le client ne sait pas ce qu'il veut au départ ou change d'avis par exemple) et à la méconnaissance des solutions disponibles. Après, personnellement, si je me mets à la place du client, je ne vais pas payer des heures un développeur pour qu'il me réécrive une fonctionnalité que je peux avoir en 30 secondes avec Packagist/Composer (ou jQuery, etc..), c'est de l'arnaque.

  3. #3
    Membre habitué
    Avatar de Shinja
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2012
    Messages : 153
    Points : 156
    Points
    156
    Par défaut
    Oui, mais dans le cadre d'un projet personnel ? Actuellement je développe des sites sans framework, juste du PHP. Je trouve que le PHP est déjà très simple pour faire un site basique et je ne comprend pas pourquoi il faut absolument utiliser un CMS ou un framework. Enfin le framework peut-être utile pour les choses complexe comme communiquer avec le compte d'un utilisateur Youtube etc. mais pour quelqu'un qui souhaite créer un site communautaire simple, est-il réellement préférable de passer par un CMS ?

    J'aimerais avoir votre avis sur la conception de compte utilisateur en PHP/MYSQL. J'utilise simplement un formulaire d'inscription qui va enregistrer le tout dans la base de données. J'applique naturellement un MD5 sur le mot de passe, je génère une clé secrète aléatoire en MD5 et j'envois un email de confirmation sur l'e-mail indiqué. L'utilisateur confirme le mail, et le site vérifie si l'utilisateur existe bien et si la clé est conforme. Si le compte n'est pas activé alors il l'active.

    Je trouve cela vraiment très simple à écrire, alors pourquoi utiliser un framework ? Est-ce vraiment plus rapide qu'écrire deux ou trois fonctions ?

  4. #4
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Salut,

    déjà pour ma part bien distinguer CMS et framework me paraît être extrêmement important. Ils ne sont absolument pas comparables. Un CMS est conçu dans un objectif précis (comme son nom l'indique, c'est toujours plus ou moins la gestion de contenu) donc en effet si ton projet ne va pas dans ce sens là, il ne m'apparaît pas nécessaire d'en utiliser un, et en devient en effet plus chiant qu'autre chose car tu vas vouloir l'utiliser pour quelque chose qu'il n'est pas censé faire.
    A contrario, un framework te fournit des outils de base (en plus ou moins grande quantité), mais avec quoi tu peux normalement faire et développer n'importe quoi et, c'est extrêmement important, tu n'es pas obligé d'utiliser les outils qu'il te propose ! En partant de ce principe là, je ne vois aucune raison de me passer au moins d'un petit framework (CakePhP, CodeIgniter pour php), même en version minimaliste, ne serait-ce que pour avoir des fonctionnalités archi-standard que l'on retrouve sur 99,99% des sites webs (connexion, mise en place d'un back-end, utilisation d'un layout, connexion à une base de données sql, découper proprement du code...).
    Rien que cela me paraît être une raison suffisante pour justifier l'utilisation d'un framework.


    Mais ne pas oublier dans tous les cas que bien cibler ce que l'on souhaite faire est essentiel !
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  5. #5
    Membre averti
    Avatar de crozet.magenta
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 208
    Points : 374
    Points
    374
    Par défaut
    pour rajouter mon avis :
    Pour ma part, j'utilise les trois à savoir du code brut en php, un framework (laravel 4) et pour certains besoins très précis un CMS. per exemple, j'ai lancé il y a peu une boutique en ligne dans ce cas précis, réinventer la roue est bien trop lourd et long pour en plus arriver à un résultat qui sera largement en dessous de ce qui existe déjà. j'ai donc pris un CMS
    Tout dépend de l'utilisation que tu veux faire de ton code. il faut savoir qu'un code brut sera surement plus difficilement réutilisable (surtout s'il n'est pas bien structué) que du code fait à partir d'un framework.
    Après il faut voir dont tu as besoin aussi ce n'est peut-être pas utile de prendre un framework si tu utilises uniquement la partie base de données, ça alourdira ton site pour pas grand chose. cela dit, du côté utilisateur, la différence ne sera presque pas visible en terme de vitesse.
    pour donner un ordre de comparaison, j'ai un site fait en php brut (c'est très basique, il n'y pas de requête de BDD), le temps de réponse est de l'ordre de 0.05 sec en comparaison, une page générée par laravel sans requête de BDD met en moyenne 0.15 sec pour arriver au navigateur. la différence est effectivement assez grande mais c'est imperceptible. (pour info, le temps de réponse d'une page en HTML simple est de l'ordre de 5 ms)
    enfin, le dernier point à prendre en compte est le "confort de développement" en php, tu dois tout faire alors que avec un framework, tout est extrêmement plus rapide à coder mais d'un autre côté, il faut en premier apprendre à utiliser le framework.

    Comme ça a été dit, c'est à toi de voir en fonction de tes besoins, il n'y a pas de réponse absolue
    n'oubliez pas de voter si le message vous a aidé


  6. #6
    Membre habitué
    Avatar de Shinja
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2012
    Messages : 153
    Points : 156
    Points
    156
    Par défaut
    Merci pour vos avis, ça m'aide à un peu voir les choses autrement. Disons que j'ai pas mal bosser sur du WordPress et du coup quand je développe un site en PHP pur, je me base sur le même fonctionnement en créant mes propres fonctions.

    Par exemple, j'ai crée une fonction qui se charge d'ajouter une nouvelle entrée dans une table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <?php
    function db_insert($table, $args, $debug = false) {
    	$db = db_connect();	
    	if($db){
    		foreach($args as $key => $value) {
    			$keys[] = $key;
    			$value = mysqli_real_escape_string($db, $value);
    			$values[] = "'".$value."'";
    		}
    		$new_keys = implode(', ', $keys);
    		$new_values = implode(', ', $values);
    		$query_str = "INSERT INTO $table ( $new_keys ) VALUES ( $new_values )";
    		$query = mysqli_query($db,$query_str);
    		$id = mysqli_insert_id($db);
    		if($debug) {
    			var_dump($query);	
    			echo ' :::: '.$query_str;
    		}
    		if($query) return $id;
    		else return false;
    		db_close();
    	} else return false;
    }
    ?>
    De cette manière, bah c'est ultra simple d'ajouter un nouvel élément vu que j'utilise simplement la fonction comme tel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php $new_post = insert_db('users', $args); ?>
    Il faudrait que je travaille avec un framework pour me rendre compte de son utilité. Disons que j'ai écris une grosse partie de mes fonctions, et il faudrait certainement tout recommencer pour l'exploiter.

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Au vu de ton code et du cas que tu cites, tu n'utilises pas de requêtes préparées et tu te sers de md5 pour hasher un mot de passe: ce n'est pas bon. Est que ton espace-membre est protégé contre les injections XSS, le CRSF etc ? Est-ce que tes données sont correcteent validées et filtrées avant l'entrée en base de données?

    Un (bon) CMS le fait automatiquement sans que tu t'en soucies. Un (bon) framework ne t'imposera rien, mais t'encouragera à utiliser les bonnes pratiques.

    Effectivement, si c'est juste pour apprendre, il n'y a rien de mal à réinventer la roue. Mais dans ce cas il faut suivre les bonnes méthodes de "fabrication" et se méfier de beaucoup de cours en ligne et autres qui parlent surtout d'un PHP d'il y a 5 ans (avant PHP 5.3 notamment). Mais une fois que tu progresseras, tu découvrira 1) qu'il est plus intéressant d'écrire un code avec une valeur ajoutée plutôt que de réécrire des choses qui ont déjà été faites des milliers de fois et 2) qu'il y a des développeurs très forts qui ont consacré un temps fou à développer des CMS ou des frameworks, et que à toi tout seul il y a très peu de chances de faire mieux qu'eux dans le domaine qu'ils ont choisi, et qu'il est mieux de trouver ton propre domaine. Juste un exemple, regarde la plupart des bonnes bibliothèques PHP sur github, la plupart d'entre eux utilisent des composants externes et se concentrent sur leur principal objectif au lieu de réinventer la roue.

  8. #8
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    +1 pour Tsilefy. Développer soi-même introduit toujours une notion de sécurité relative du fait à qu'il nous soit impossible de penser à tout dès le premier coup, alors qu'on peut partir du principe que les CMS et frameworks sont relativement sûr à utiliser étant donné qu'ils ont été développer par l'ensemble d'une communauté et ont déjà pas mal de bouteille derrière eux.

    Mais dans tous les cas ta démarche est intéressante et pertinente, tu as un raisonnement qui va dans le bon sens. Il faut d'abord commencer à développer à partir de rien pour apprendre, puis en apprendre davantage à partir des bases que l'ont s'est bâti (et non tenter de tout apprendre d'un coup avec le grand risque de ne pas y arriver et de s'effronder).

    Maintenant que tu as un peu avancé, tu peux essayer et tester un framework, et tu verras après que tu en saisiras les fondamentaux, tu ne pourras plus t'en passer
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  9. #9
    Membre habitué
    Avatar de Shinja
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2012
    Messages : 153
    Points : 156
    Points
    156
    Par défaut
    En effet, j'utilise uniquement le MD5 pour protéger le mot de passe, je pensais que se serait amplement suffisant étant donné que lors de la vérification, j'utilise un mot en plus avec le mot de passe. Je vais tout de même regarder un bon framework PHP et voir ce qu'il peut m'apporter. Déjà rien que pour le coté sécurité, je pense que c'est déjà une bonne chose d'en adopter un. J'aurais pu repartir sur du CMS, mais je trouve que c'est trop lourd et quand on veut quelque chose de spécifique il faut modifier énormément de choses.

    En tout cas merci pour vos réponses, ça me permet d'y voir plus clair.

    edit : faut-il préférer cakePHP ou Zend ? Je pose la question, car je me suis aperçu que Zend était installé par défaut sur ma Squeeze avec Suhosin..

  10. #10
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 021
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 021
    Points : 2 278
    Points
    2 278
    Par défaut
    Pour revenir sur la sécurité, le problème avec les CMS c'est que quand des failles sont trouvées, elles sont publiées et conduisent souvent à des campagnes de hack automatisées (c'est assez simple d'automatiser la détection d'un CMS et de sa version).
    Du coup les mises à jour de sécurité + copie de sauvegarde des sites deviennent extrêmement importantes. Si tu gères plusieurs sites dont des sites sous Drupal, Joomla, Wordpress, etc. A raison de 2 ou 3 màj de sécu par an des core + les màj des plugins/composants ça représente une masse de temps non négligeable. Certains diront que c'est un avantage car ça permet de facturer des tâches supplémentaires, personnellement je trouve ces tâches inintéressantes et pouvant être pas mal stressantes (perte de config personnalisée, etc.).

    Avec du code maison, même s'il est possible que la sécurité soit moins fiable, il y a a priori moins de chances de se faire hacker.

    J'ai souvent pris un peu de temps pour réinventer la roue et dans la majeure partie des cas ça a été payant (niveau perfs, sécu ou encore temps de dév VS temps d'apprentissage du framework/lib). Si personne n'avait réinventé la roue, on roulerait toujours avec des roues en pierre, voir ma signature
    Vive les roues en pierre

  11. #11
    Membre habitué
    Avatar de Shinja
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2012
    Messages : 153
    Points : 156
    Points
    156
    Par défaut
    Oui, d'ailleurs j'ai envie de dire que niveau sécurité en cas de pépin on est certainement plus apte à intervenir plutôt que devoir courir à gauche et à droite car on ne sait pas trop s'y prendre avec un CMS. Je serais quand même curieux de savoir comment il est possible de hacker un site avec un mot de passe crypté en MD5 + une phrase secrète.

  12. #12
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 021
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 021
    Points : 2 278
    Points
    2 278
    Par défaut
    Citation Envoyé par Shinja Voir le message
    Je serais quand même curieux de savoir comment il est possible de hacker un site avec un mot de passe crypté en MD5 + une phrase secrète.
    C'est tellement vaste qu'il est difficile de répondre mais tu peux faire des recherches sur : injection SQL / injection XSS / sidejacking/ vol de session / cookie.
    Souvent le hack d'un site n'est pas sur l'authentification des users mais plutôt par effet de bord si je puis dire. Un exemple simple : exécution d'un code PHP/SQL sur une tout autre page que celle d'authentification permettant de passer un compte user en compte admin sur un forum, un CMS, etc.
    Vive les roues en pierre

  13. #13
    Membre habitué
    Avatar de Shinja
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2012
    Messages : 153
    Points : 156
    Points
    156
    Par défaut
    J'ai un peu regardé le fonctionne de Zend et Yii.... Je pense qu'un framework est plus destiné au développement industriel et pas au projet personnel ou amateur. Je trouve que c'est très contraignant ne serait-ce que pour l'installation et la configuration. Il faut vraiment être très bon pour être à l'aise avec ce genre d'outil et pourtant je me débrouille bien en C++ / PHP / jQuery. Je préfère de loin créer mes classes et fonctions par rapport à ce que j'ai besoin. Je bosse pas dans le développement web, j'ai pas de client, je fais ça vraiment pour mes projets personnels et parce que la programmation me passionne. A la limite, je préfère créer mon propre framework, ce dont je compte bien faire à un moment donné. Je pense que le meilleur outil est celui que l'ont crée.

  14. #14
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    @Djakisback : des scripts de détection de failles automatiques attaquent les serveurs des dizaines (des centaines ou plus parfois) de fois par jour, donc peu importe que le code soit issu d'un CMS connu ou pas. S'il y a une faille et que quelqu'un a ciblé le serveur, ça tombera.

    @Shinja: Pourquoi les fonctions traditionnelles de hashage comme md5() et sha1() sont-elles inappropriées aux mots de passe ?

    PHP a des fonction natives pour hasher et vérifier un mot de passe depuis 5.5, et si tu n'as pas PHP 5.5 ircmaxell a crée un port de ces fonctions en PHP pur.

  15. #15
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    Citation Envoyé par Shinja Voir le message
    Je pense que le meilleur outil est celui que l'ont crée.
    Cette réflexion est d'après mes constats partagée par la très vaste majorité de ceux qui développent en PHP. Je n'ai jamais compris personnellement ce raisonnement. Ceux qui font du ruby, du python, du java, du javascript etc. ne se posent jamais cette question (en tout cas je n'ai jamais vu dans une telle proportion). D'ailleurs, pour ruby par exemple, beaucoup d'identifient plus à Rails (le champion de la non-réinvention de la roue) qu'à ruby.

    Et en exagérant, je me demande où on arrête de réinventer la roue: après tout, PHP n'est qu'une surcouche de C, pourquoi ne pas utiliser C directement alors? Voir en assembleur? La réponse, c'est que dans les domaines de PHP, PHP est plus facile, plus rapide et permets de faire des choses beaucoup plus rapidement, sans qu'on ait à se soucier des détails de bas niveau. Les frameworks, composants et autres bibliothèques apportent les mêmes avantages et plus.

    Après, ce n'est que mon avis :-)

  16. #16
    Membre habitué
    Avatar de Shinja
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2012
    Messages : 153
    Points : 156
    Points
    156
    Par défaut
    Oui mais le PHP est un langage de programmation non ? Je pense que c'est aussi un choix personnel, car si je me souviens bien lorsque j'ai commencé à programmer en C#, une fois de bonnes bases acquises j'ai vite fait abandonner ce langage. Pourquoi ? Car je supporte pas la surcouche qu'il utilise, alors je me suis intéressé au C++, qui me convient nettement mieux et où je me sens plus à l'aise. Je ne jure que par le C et le C++ ! D'ailleurs, je suis très déçu que l'avenir se porte sur le C# et le Java. Je voudrais développer sur Android, mais je suis obligé d'apprendre le Java et j'ai horreur de bosser avec du xml, sauf pour générer des tableaux, genre un fichier de configuration ou listing, c'est plus propre qu'un fichier *.ini.

    Je reconnais que le fonctionnement d'un framework est très propre et l'idée me plait, sauf que j'éprouve plus de plaisir à développer mes propre outils et je m'y retrouve mieux. Je reconnais que je suis du genre à aimer les choses compliquées, mais je pense que je dois chercher au fond une certaine satisfaction. Quoi qu'il en soit, apprendre un framework comme Zend, je n'en éprouve pas le besoin sauf si demain on me propose une formation et un job derrière, pourquoi pas.

  17. #17
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 021
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 021
    Points : 2 278
    Points
    2 278
    Par défaut
    Citation Envoyé par Tsilefy Voir le message
    @Djakisback : des scripts de détection de failles automatiques attaquent les serveurs des dizaines (des centaines ou plus parfois) de fois par jour, donc peu importe que le code soit issu d'un CMS connu ou pas. S'il y a une faille et que quelqu'un a ciblé le serveur, ça tombera.
    La différence entre les 2 scénarios est énorme.
    Vive les roues en pierre

  18. #18
    Membre habitué
    Avatar de Shinja
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2012
    Messages : 153
    Points : 156
    Points
    156
    Par défaut
    Puisqu'on parle de sécurité, est-ce qu'un simple crypt() avec l'algo BLOWFISH est suffisant pour un site de petites annonces par exemple ?

  19. #19
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Points : 2 440
    Points
    2 440
    Par défaut
    C'est suffisant pour tout (pour le moment?), à condition que le salt est unique et aléatoirement fort. L'avantage de password_hash() est qu'il génère un bon salt automatiquement.

  20. #20
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Déjà pour la sécurité, soyons clair, un mot de passe hashé en sha1 avec un grain de sel (et pas hésiter à bien y aller sur le sel, genre un truc à 20 caractères complètement random), rend déjà bien plus compliqué les attaques par décryptage du hash si jamais on réussissait à l'obtenir. C'est déjà un niveau de sécurité hautement suffisant dans la plupart des cas.
    Après, quand si la sécurité devient critique, en effet l'algo blowfish fais partie des meilleurs algo disponible pour générer un hash d'un mot de passe.

    edit : faut-il préférer cakePHP ou Zend ? Je pose la question, car je me suis aperçu que Zend était installé par défaut sur ma Squeeze avec Suhosin..
    Pour en revenir aux frameworks, il faut bien se rendre compte que zend fais partie des (le ?) plus gros frameworks php actuellement. Comme tu l'as dit, c'est clair qu'il est plutôt orienté professionnel et industriel que développement personnel. Ce n'est clairement pas l'optique de celui-ci.
    Il existe des frameworks plus petit, plus léger (CakePhp comme tu l'as dit, mais aussi CodeIgniter et Laravel par exemple pour ne citer qu'eux), qui sont beaucoup plus orientés vers la légèreté et la simplicité et dans ce sens, beaucoup plus adaptés à ce genre de développement. Ils permettent de démarrer à développer plus rapidement et plus facilement un projet sans en connaître des tonnes. La seule limitation de ces frameworks sera le développement de très gros projets, là où ils atteindront leurs limites et où les fonctionnalités de zend montreront clairement toutes leurs puissances.

    Pour ne parler que de ce que je connais, j'ai pas mal utilisé Cake, donc déjà l'installation se limite à l'extraction d'un zip, et ensuite tu as juste à connaître le modèle MVC car c'est ce modèle là qu'il utilise et tu ne peux l'ignorer. Tout le reste est facultatif, et tu apprends à t'en servir au fur et à mesure de ton avancement et de la compréhension du framework. Et honnêtement ça va assez vite, et tu rends très vite compte, que même si tu as pris un peu plus de temps à le faire la première fois que si tu le faisais "à la mano" (et encore...), ça te fera gagner énormément de temps la deuxième fois que tu t'en serviras.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

Discussions similaires

  1. Pourquoi réinventer la roue quand il y a Runnable ?
    Par Stéphane le calme dans le forum Actualités
    Réponses: 17
    Dernier message: 04/11/2013, 11h49
  2. Ne pas réinventer la roue
    Par cournofr dans le forum Débuter
    Réponses: 2
    Dernier message: 18/01/2010, 15h30
  3. ne pas réinventer la roue, classer un vecteur
    Par antoinelac dans le forum C++Builder
    Réponses: 1
    Dernier message: 31/03/2009, 09h43
  4. Pourquoi je n'ai pas le droit à un bootsplash ?
    Par Michaël dans le forum Administration système
    Réponses: 4
    Dernier message: 30/08/2004, 14h02
  5. [C#] Pourquoi je ne peux pas sauvegarder le fichier Xml ?
    Par gregoun dans le forum Services Web
    Réponses: 5
    Dernier message: 05/05/2004, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo