Salut tous le monde !

Je viens aujourd’hui vous faire part de mon projet : Le mot de passe ayant une place importante dans notre quotidien, il est de nos jours malheureusement peu sécurisé, c’est pourquoi j’ai décidé de créer mon webservice : https://secure-password.fr

En quoi il consiste ? Tout simplement à protéger les utilisateurs de votre site internet en les empêchant d'utiliser des mots de passe courants ou déjà piratés et disponibles en clair sur internet.

Actuellement seule l'API est disponible, mais j'ai pour projet de l'adapter sur mobile afin de permettre aux utilisateurs de sécuriser leurs comptes sur le web. Je précise également que mon service est en règle avec les normes de la CNIL.

Amis développeurs, webmasters ou autres, votre feedback me serait très précieux ! 250 Requêtes vous sont offertes à l'inscription afin que vous puissiez vous faire votre avis.

Si le projet vous plait, n'hésitez pas à acheter un pack de requêtes en guise de dons car j’aurai besoin de votre soutien pour assurer le serveur pendant plusieurs années et d’optimiser le service pour le rendre plus rapide et plus complet.

N'hésitez pas à partager le site sur les réseaux sociaux !

Je reste à votre disponibilité pour toutes autres questions.

En vous remerciant d’avance,

Technologiquement votre, Guillaume.

6 réponses


Bonjour,

1/ Petit bémol, il faut tout passer en https pour éviter que le navigateur crie panique :) même les fonts google.

    <link href='http://fonts.googleapis.com/css?family=Lato:400,300,700' rel='stylesheet' type='text/css'>
    <link href='http://fonts.googleapis.com/css?family=Roboto+Condensed:300,400,700' rel='stylesheet' type='text/css'>

2/ Attention ta clé d'api démo est très facile à trouver et est utilisable sans limite de requête.

<?php

$post = [
    'password' => '',
    'apiKey' => 'XXXXXXXXXXXX' // Caché pour des raisons évidentes.
];

for($i = 0; $i <= 260; $i++){
    //random password hashed.
    $post['password'] = sha1(
        (string) rand(0,1000).rand(0,1000).rand(0,1000).rand(0,1000)
    );
    //init
    $ch = curl_init('https://secure-password.fr/demo');
    //header section
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    curl_setopt($ch, CURLOPT_HTTPHEADER, ["X-Requested-With: XMLHttpRequest"]);
    //exec
    $response = curl_exec($ch);
    curl_close($ch);

    $json = json_decode($response,true);
    //extract data.
    var_dump($json['password']);
}

3/ ton model économique est cher. A titre de comparaison l'OCR de Google Cloud est moins cher au 1000 requêtes (source : https://cloud.google.com/vision/pricing), le travail a faire côté serveur est bien plus lourd par contre.

4/ Tu n'as pas de documentation publique d'API c'est pourtant la première chose que je regarde quand je benchmark ce type d'outil.

noxyra
Auteur

Salut Yanis-Git !

Merci pour ta réponse.

My god. J'avais oublié ce détail ! Sur mon firefox le cadenas vert s'affiche et j'ai pas pensé à vérifier sur les autres. Je fais ça dans l'après midi.

Pour la partie 2, effectivement, mais la clé n'est pas complète il ne s'agit que d'un bout de la clé qui vient compléter l'autre partie se trouvant dans le controller de la route /demo. Concernant la non-limite des requètes, aux vues de mes stats actuelles j'ai pas vu l'intéret de les limiter j'ajouterais sans doute un système de jetons quand mon trafic sera un peu plus lourd pour l'heure j'avais pas de temps à perdre ^^

Si je ne conquis pas assez de gens, je compte bien baisser le prix je me rend bien compte que c'est assez cher.

Et pour le dernier point, si j'ai une documentation publique d'API ! Tu as la documentation autogénérée et les exemples d'installation sur la première section de l'accueil. les voici https://secure-password.fr/installation et https://secure-password.fr/documentation

noxyra
Auteur

Done. J'ai patché le problème de HTTPS

Salut,

Je t'avoue que je n'arrive pas à voir l'intérêt de ton service.
Quel sont les assurances que tu donne par rapport à la sécurité ? As-tu de la légitimités dans le milieu ? Vérifies-tu l'authenticités des leaks ? Sommes nous certain que tu ne va pas stocker les mot de passe ?

Surtout quand il existe des services tel que HIBP (https://haveibeenpwned.com) qui offre une API 100% gratuite, HIBP étant un service créé par Troy Hunt qui est l'une des autorités majeures en terme de sécurité.

Le seul truc que tu offres en plus est un check par rapport au règles de la CNIL, qui, entre nous, sont stupides. Forcer plusieurs type de charactères est la porte ouverte aux pattern bien distinctifs dans les mot de passe (Majuscule au début et un point à la fin. Et soyons honnête, un simple check en js permet de faire la même chose, sans devoir faire une requête à un service externe.

Enfin bref, tu propose un service dont l'intension est bonne, mais qui n'a aucune raison d'être car tu n'a aucun moyen d'assurer à tes utilisateurs ta légitimité dans le milieu. Il représente plus un risque qu'une assurance de sécurité.

ce n'est que mon point de vue, niveau design c'est beau mais j'ai vraiment une impression de vide. il faudrait peut-être combler les trous

Je suis de l'avis de mes VDD en ce qui concerne l'utilité de cette API en terme de securité. De plus, je se sais pas ce que fais des mots de passe que tu recupéres à chaque appel à ton API. Et pour moi ce tarif est un NO-GO pour ce genre de service.
Il est vrai que ça semble partir d'une bonne intention, mais nos garanties en tant qu'utilisateurs sont innexistantes. Surtout qu'implémenter ça en tant que fonctionnalité sur mon site peut se faire en quelques minutes, en prenant des sources Js.

Cependant, je t'encourage à continuer le developpement de ce projet, de revoir le business model, d'étoffer un peu les pages du site, ...
Tu pourrais garder cette API de test en accès gratuit, mais proposer des services liés en echange d'un abonnement par exemple. A toi d'imaginer les services que tu pourrais proposer de façon à justifier un investissement.

De plus, je ne sais pas comment le tout fonctionne en backend, mais si ce n'est pas le cas, sécurises ton compteur de requêtes. Il est facile de saturer une quantité allouée en bouclant sur le champ à vérifier.

Un point positif, la documentation de l'API. Certe très mince, mais jolie. Par quoi es-tu passé pour la rédaction / mise en page ?