Journal Lancement de la bêta de Ma Petite Auto Entreprise

Posté par (page perso) .
Tags :
15
19
fév.
2011
Bonjournal,

je viens me frotter à mes risques et périls à la critique exigeante des linuxfriens.

Je viens de lancer en bêta un outil de gestion pour auto-entrepreneurs que j'ai développé au départ pour mes propres besoins. La release officielle est prévue dans environ un mois.

Il permet la gestion de clients, de projets, de devis, de factures et le suivi de tout ça sur un tableau de bord.

Le rapport avec le libre ? l'outil est libre et écrit en Django.

Je fais donc appel aux éventuels auto-entrepeneurs présents ici qui voudraient tester l'application. Je précise qu'après la sortie officielle, le modèle économique sera basé sur une période d'essai de 30 jours puis un abonnement d'1 euro par mois, pour financer l'hébergement et le développement.

Je vous laisse découvrir tout ça et me faire un retour pour les gens concernés.

Annonce du lancement de la bêta : [http://francoisgaudin.com/2011/02/18/lancement-de-la-beta-de(...)]
Description technique : [http://francoisgaudin.com/2011/02/19/les-coulisses-de-ma-pet(...)]
Accès à l'application : [https://test.mapetiteautoentreprise.fr]
Sources : [https://github.com/fgaudin/aemanager]
  • # et les logs/pass pour tester

    Posté par . Évalué à 3.

    vu que c'est en phase beta, me dit pas qu'il faut que je me crees un vrai compte pour tester ?
    • [^] # Re: et les logs/pass pour tester

      Posté par (page perso) . Évalué à 7.

      si si =)

      parce que dans les testeurs, y'a des gens "normaux" qui vont probablement rentrer leurs vraies données pour tester donc un compte commun à tout le monde aurait foutu le bordel, et je parle pas de la confidentialité des données.

      Et puis la création de compte fait partie des choses à tester comme le reste (j'ai d'ailleurs eu un bug relevé ce matin la dessus).

      Après, je peux toujours créer un compte test/test si tu veux

      http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

      • [^] # Re: et les logs/pass pour tester

        Posté par (page perso) . Évalué à 2.

        Je vois d'ailleurs que t'as le même bug que ce matin, le problème de non validation CSRF, car en SSL django demande un referer pour valider le formulaire (ce que j'ai découvert ce matin). Tu as un firefox avec un conf par défaut ? parce que c'est pénalisant ce truc et à part virer le ssl, je peux rien faire. La solution est coté client (comme expliqué sur la page d'erreur normalement).

        http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

        • [^] # Re: et les logs/pass pour tester

          Posté par (page perso) . Évalué à 2.

          « Vous voyez ce message car ce site en HTTPS nécessite l'envoi d'un en-tête 'Referer' par votre navigateur, mais aucun n'a été envoyé. Cet en-tête est nécessaire pour des raisons de sécurité, pour s'assurer que votre navigateur n'a pas été piraté par un tiers. »

          Une fonctionnalité de sécurité qui se base sur le HTTP Referer ?! C'est quoi cette idée à la con ? N'importe qui peut forger un faut HTTP Referer, il ne faut jamais utiliser ce header pour autre chose que des stats.

          Pour contrer les attaques CSRF, une seule solution fiable, mettre dans le formulaire un secret partagé (un token) stocké sur le serveur, à l'action du formulaire comparer le token stocké au token reçu, ils doivent être identiques.

          NE JAMAIS UTILISER LE REFERER !

          « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

          • [^] # Re: et les logs/pass pour tester

            Posté par (page perso) . Évalué à 1.

            La c'est django qui fait ça tout seul (token dans un cookie, dans un champ caché) et ... referer quand on est en https. J'ai découvert le cas du referer en https hier (forcément, je développe pas en testant sur ssl).

            Explication dans la doc django : http://docs.djangoproject.com/en/1.2/ref/contrib/csrf/#how-i(...)

            Ca a l'air d'être juste une sécurité de plus en https à cause d'un manque de confiance dans le cookie. Par contre je trouve pas d'explication plus poussée pour l'instant.

            Et la version simple pour empêcher ça serait de désactiver le csrf ... je cherche plus d'info

            http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

            • [^] # Re: et les logs/pass pour tester

              Posté par (page perso) . Évalué à 5.

              Ça m'a l'air complètement biaisé comme approche :

              - le token doit être unique au formulaire, là il semble que le token ne change jamais une fois qu'il est mis en cookie
              - pourquoi mettre le token en cookie ?! c'est ajouter une vulnérabilité possible au machin, et ça ne sert strictement à rien
              - le token ne semble pas être stocké sur le serveur, ne laissant aucun moyen de vérifier la requête indépendamment du client, résultat (et explication du pourquoi de la vérif de Referer), n'importe qui peut forger le champ envoyé en POST *et* le cookie

              Ce mécanisme bancal ne devrait jamais être utilisé, il ne protège que de manière marginale contre les attaques CSRF, et de plus rajoute de nombreux problèmes de compatibilités client (obligation d'accepter les cookies, d'envoyer un header HTTP Referer valide, etc.). Et une règle simple : on n'utilise jamais le stockage du client pour vérifier que le client fait bien les choses, et ici c'est le cas ! Se baser sur un cookie c'est vraiment une ineptie...

              Bref un seul conseil : n'utilise pas ce truc horrible, je n'ai jamais vu une solution aussi mal pensée.

              Pour se protéger des CSRF, une solution simple :
              - générer un token unique pour chaque formulaire (et non le même pour tous les formulaires !)
              - le stocker au niveau du serveur (par exemple dans une session associée au client, mais ça peut aussi être associé à un identifiant unique du formulaire)
              - le mettre dans un champ hidden dans le formulaire
              - vérifier à l'exécution de l'action que le champ envoyé correspond à ce qui est stocké sur le *serveur* (qui est de confiance, qu'on maîtrise, contrairement à ce qu'envoie le client)

              « Je vois bien à quels excès peut conduire une démocratie d'opinion débridée, je le vis tous les jours. » (Nicolas Sarkozy)

              • [^] # Re: et les logs/pass pour tester

                Posté par (page perso) . Évalué à 3.

                Pour te rassurer, je connais le principe de non confiance du client. Par contre, j'avoue avoir fait confiance à Django.

                Alors j'adhère à ton raisonnement et ne comprends pas vraiment pourquoi la solution de django est considérée sure, source :

                voir http://www.owasp.org/index.php/Cross-Site_Request_Forgery_(C(...)

                en particulier : "In general, developers need only generate this token once for the current session"

                http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

    • [^] # Re: et les logs/pass pour tester

      Posté par (page perso) . Évalué à 3.

      du coup, compte test/test créé

      http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

    • [^] # Re: et les logs/pass pour tester

      Posté par (page perso) . Évalué à 1.

      Du coup, tu mas pas répondu pour le problème CSRF, c'était toi ? et la solution indiquée résoud le problème ?

      http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

  • # un bug et des remarques

    Posté par . Évalué à 6.

    j'ai créé sur le compte test/test

    un client A
    un client B
    des projets sur ces clients.

    Je crees un devis sur le projet C
    j'envoie le devis.

    il me met alors 2 boutons accepté/refusé

    quelque soit le bouton sur lequel je clique, ca me marque "refusé" dans le status du devis :(

    Rermarques pour etre en cohesion avec le fonctionnement :
    - le menu "contacts" devrait s'appeler "clients"
    - le champ SIRET devrait etre obligatoire quand on choisit un client "entreprise"

    c'est à peut pres tout ce qui me vient à l'esprit aussi tot un samedi matin.
    • [^] # Re: un bug et des remarques

      Posté par (page perso) . Évalué à 3.

      merci pour le retour :-)

      pour le menu contact, je me faisais la même réflexion ... mais mon esprit obtus se disait "certes mais il peut y avoir des contacts qui ne sont pas des clients", mais t'as raison, je change ca pour la prochaine beta/release.

      Pour le bug accepté/refusé, je reproduis en effet. Je regarde ça demain, il se fait un peu tard la.

      http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

    • [^] # Re: un bug et des remarques

      Posté par . Évalué à 4.

      une facture ne peux pas solder un devis multiligne

      ex de devis :
      abonnement 12 mois : 12 x 100
      ristourne fidelité : -1 x 100

      total devis 1100


      au moment de faire la facture, je ne peux faire qu'une seule ligne de 11x100
      sinon il considere que la facture depasse le montant du devis

      de plus il pourrait reprendre les lignes du devis pour eviter de les retaper, et donc tomber juste sur le prix.

      enfin si j'edite une facture pour la passer de "editée à payée"
      l'outil refuse de valider en me disant que "le champs devis est obligatoire" mais il ne trouve plus de devis car il est probalement soldé au moment ou j'ai editée la facture
      • [^] # Re: un bug et des remarques

        Posté par (page perso) . Évalué à 3.

        ah, tu me mets déjà face à un cas que j'avais oublié, les valeurs négatives donc je vais tester ton cas.

        Pour la reprise des lignes, on m'a déjà fait la remarque, mais en fait, l'histoire de facture multi-devis n'était pas prévu au départ et je l'ai codé parce que j'ai eu le cas personnellement. J'avais une facture qui concernait plusieurs devis. Et je facture tous les mois, pour des devis sur plusieurs mois. Idée qui me vient : dès qu'on sélectionne un devis, afficher dans un tooltip le reste à facturer et les lignes de détails du devis choisi.

        Ta dernière erreur n'est pas normale. Le devis est soldé que lorsque que la facture est payée. Tu as d'abord fait une facture ok qui a soldé le devis ? bon, dans tous les cas, étant donné que je permets d'éditer une facture à n'importe quel moment, il faut que je rajoute les devis associés dans la liste par défaut.

        http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

        • [^] # Re: un bug et des remarques

          Posté par . Évalué à 3.

          le scenario que j'ai appliqué et qui bloque en facturation.
          1) soit un devis pour un projet sur un client
          2) soit la creation d'une facture en cochant la case "solde le devis", et le choix du devis donné en 1
          3) la facture est dans l'etat "editée", je recois le reglement, je veux la passer à "payée"

          et bien il ne veut pas car il faut associé la facture au devis
          et cette association n'est plus faisable car le devis a etait soldé à l'etape de creation de la facture

          --------
          suite de mes tests ce matin

          je ne peux pas entrer de depenses :(

          bon en meme temps pour un autoentrepreneur il y taxé sur son chiffre d'affaire et pas sur son benefice
          • [^] # Re: un bug et des remarques

            Posté par (page perso) . Évalué à 1.

            bon, je me réveille, je vais voir tout ça après un ptit dej.

            Pour les dépenses, c'est que pour la vente de produit, légalement il faut tenir un livre d'achat il me semble. Et l'origine de la fonctionnalité c'est parce que moi j'y mets mes salaires, assurance, cotisations, du coup, je vois si mon bénéfice réel augmente ou pas.

            http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

          • [^] # Re: un bug et des remarques

            Posté par (page perso) . Évalué à 1.

            pour les dépenses, en effet, y'a le csrf qui pète. Je l'avais supprimé à cause de l'ajax, ca remarchait. Mais j'ai réécrit des décorateurs appelés avant le csrf_exempt et j'ai du péter un truc du coup. Je vais regarder ça et intégrer le csrf aux requêtes ajax (et voir pourquoi mes décorateurs cassent la chaîne d'ailleurs).

            http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

          • [^] # Re: un bug et des remarques

            Posté par (page perso) . Évalué à 0.

            J'ai mis à jour (je reréponds ici car je suis pas sur que tu es de notification pour le commentaire du bas qui est d'ailleurs noté à 0 donc caché dès son ajout ...)

            http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

    • [^] # Re: un bug et des remarques

      Posté par (page perso) . Évalué à 1.

      je suis sur le SIRET là, mais du coup j'ai un doute. Un siret n'est pas forcément obligatoire à mon avis. Ca peut être une société étrangère par exemple. Ou comme ça a été mon cas au début, on peut être en cours d'immatriculation et déjà faire des factures (ce qui est légal).

      Bon, le champ n'exige pas un format de siret valide, donc pour les boites étrangères, on peut toujours mettre autre chose et pour le 2e cas, on peut mettre "en cours d'immatriculation". Du coup, je me rends compte qu'il manque le siret coté client sur le pdf de la facture, ce que ne précise pas le site de l'auto entrepreneur dans son modèle : http://www.lautoentrepreneur.fr/images/5_Facturier.pdf

      Bon, allez, je vais le rajouter ... ok

      http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

  • # Libre ?

    Posté par (page perso) . Évalué à 3.

    Le rapport avec le libre ? l'outil est libre et écrit en Django.
    Ah, donc aucun rapport. Il y a des logiciels propriétaires écrits et/ou compilés avec des logiciels libres.

    Vu que tu donnes les sources, t'embêtes pas avec une justification :-)
    • [^] # Re: Libre ?

      Posté par (page perso) . Évalué à 2.

      quand j'ai écrit cette phrase je savais pas encore que mon dernier lien serait les sources ;-)

      Et puis ça aurait pu être libre mais écrit en C# :-p (le samedi c'est comme le vendredi niveau troll ?)

      http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

  • # Beta 4 en ligne

    Posté par (page perso) . Évalué à 1.

    Bon, quand je vois que j'ajoute encore des fonctionnalités, on pourrait plus parler d'une alpha 4 mais bon.

    En tout cas, les bugs sont normalement corrigés et j'ai trouvé des solutions pour les problèmes d'ergo. Notamment deux points :

    Création de facture à partir d'un devis (possible que si le devis est à l'état "accepté" et que le reste à facturer n'est pas nul. Ca copie les lignes du devis dans la facture.

    Et dès qu'on sélectionne un devis sur une facture, il s'affiche dans une boite de dialogue. Bon, s'il est déjà ouvert il faudrait pas le rouvrir, il faut que je modifie ça. Et si on l'a fermé, il faut sélectionné une autre valeur puis revenir sur notre devis. C'est pas top mais j'ai pas envie de rajouter un bouton exprès sur une ligne déjà bien chargée.

    Bons tests et merci encore pour tout ;-)

    http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

    • [^] # Re: Beta 4 en ligne

      Posté par (page perso) . Évalué à 2.

      (La vérification par Referer, c'est assez gênant et peu utile) (surtout qu'il n'y a que Launchpad, parmi tout mes sites, qui le demande)

      « En fait, le monde du libre, c’est souvent un peu comme le parti socialiste en France » Troll

      • [^] # Re: Beta 4 en ligne

        Posté par (page perso) . Évalué à 1.

        Dans tous les cas je suis gêné :-/

        Cette erreur peut faire fuir des gens, donc oui, c'est très gênant. Et en même temps, désactiver une sécurité (qu'on trouve tous discutable mais que l'owasp recommande), je trouve pas ça génial non plus. Il faut voir si c'est un problème qui touche la majorité des gens, les geeks uniquement ou tout le monde.

        http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

  • # Formulaire initial

    Posté par . Évalué à 2.

    Dans le formulaire initial :

    • le format de la date n'est pas précisé (j'ai dû tester plusieurs fois avant de trouver le bon format ;

    • trop de champs obligatoires, alors qu'ils pourraient très bien être renseignés ultérieurement. Du coup ça oblige à mettre des valeurs pipeau.

    • [^] # Re: Formulaire initial

      Posté par (page perso) . Évalué à 0.

      Pour le format, ok, je vais rajouter.

      Pour les informations obligatoires, c'est pour éviter beaucoup de désagrément pour la génération de facture (aussi bien coté utilisateurs qu'en cas d'abonnement).

      Au passage, je ne sais pas sur quelle version tu testes, mais ca y est c'est en prod depuis cette nuit. Je vais mettre une petite info sur la version de test et fermer les inscriptions d'ailleurs.

      Je vais aussi faire un ptit journal pour annoncer ça et j'ai une question de licence au passage.

      http://helpmequ.it: arrêter de fumer pour la bonne cause, http://mapetiteautoentreprise.fr : facturation libre pour les auto-entrepreneurs

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.