Catégorie : Technique

  • Tomber en marche

    Celle ci je ne peux me rete­nir de la copier car elle est magni­fique :

    $override = null;
    if ($notify_admin and $conf['browser_language'])
    {
      if (!get_browser_language($override['language']))
      {
        $override=null;
      }
    }

    À première vue, le code ne fait rien. À la seconde lecture non plus, je vous rassure.

    Après expli­ca­tion, la méthode get_browser_language utilise un passage par réfé­rence (oui, avec ce nom là…), c’est à dire que la variable qui est passée en argu­ment pourra voir sa valeur modi­fiée.

    Eureka! En sortie de code on pour­rait bien avoir une variable $override qui contient quelque chose. On a au passage fait une créa­tion de tableau impli­cite en utili­sant la syntaxe avec crochets sur une valeur nulle (conseil : ne jamais faire ça si vous souhai­tez rester lisible).

    La seconde affec­ta­tion $override=null sert si jamais get_browser_language a bien modi­fié $override['language'] mais a renvoyé une valeur évaluée à false.

    Mais pourquoi cette seconde affec­ta­tion à null ? Et bien il se trouve que la fonc­tion get_browser_language renvoie false si elle ne modi­fie pas la variable passée par réfé­rence. Dans ce cas le code d’ap­pel aurait quand même créé un tableau dans $override à cause de override['language'], il faut donc reve­nir en arrière et écra­ser ce tableau créé impli­ci­te­ment.

    À rete­nir :

    1. Ne jamais créer de tableau implic­te­ment avec l’opé­ra­teur crochet sur une valeur null.
    2. Ne jamais attendre un retour par réfé­rence sur une fonc­tion qui s’ap­pelle « get_* »
    3. Globa­le­ment, ne quasi­ment jamais utili­ser le passage par réfé­rence pour récu­pé­rer une simple valeur.

    Ici en plus vu qu’on utilise déjà l’éva­lua­tion à true ou false du retour de get_browser_language, autant lui faire retour­ner direc­te­ment la langue, ou null si aucune n’est trou­vée.

  • Dead­line

    Dead­line

    La plupart du temps la dead­line est une manif d’une fausse urgence créée par une absence de déci­sion
    Raphaël

    Je ne saurais mieux dire. Esti­mer puis mesu­rer le niveau d’ef­fort est impor­tant pour pilo­ter la déci­sion. Parfois la date de livrai­son est un élément néces­saire, mais le plus souvent il ne s’agit que d’un élément arti­fi­ciel qui se veut moti­vant et qui ne vient que d’une inca­pa­cité à pilo­ter l’ef­fort en continu, à s’adap­ter aux situa­tions qui se présentent.

    Qu’im­porte quelle était l’es­ti­ma­tion précé­dente, la date qu’on a pu maladroi­te­ment en déduire. L’im­por­tant est quelle est la déci­sion la plus perti­nente à prendre aujourd’­hui, en fonc­tion de la valeur produite, et du niveau d’ef­fort encore à four­nir pour ce qu’on envi­sage.

    Le reste est simple­ment hors sujet, y compris savoir si on est « en avance »,  « en retard » ou même « parfai­te­ment dans le plan­ning » par rapport à la date prévue en direc­tion. Le pilo­tage par la date est juste une inca­pa­cité à prendre ce recul et à s’adap­ter au présent plutôt qu’aux plans passés. Tout envi­sa­ger en un bloc et sous forme de retard ou d’avance est juste telle­ment plus rassu­rant, plus simple… Ça n’ap­porte malheu­reu­se­ment aucune valeur.

    Photo d’en­tête sous licence CC BY-NC-SA par João Almeida

  • Termi­nai­son d’ap­pel et débit asymé­trique

    Termi­nai­son d’ap­pel et débit asymé­trique

    Je ne sais pas où ça a commencé mais il y en a un qui mérite des baffes. Fiction.

    Hier le rapport de force a pris un tour­nant inat­tendu. Youtube a coupé l’ac­cès aux abon­nés SFR, ou plutôt a telle­ment ralenti les débits qu’il est impos­sible de regar­der une vidéo.

    Le distri­bu­teur de vidéo se plaint d’un nombre gran­dis­sant de requêtes venant de SFR, nombre qui dépas­se­rait le raison­nable. La tension est montée à un niveau insou­te­nable il y a plusieurs mois, date à laquelle les abon­nés fibre SFR ont pu télé­char­ger à 1 Gb/s.

    Décryp­tage : Quand vous regar­dez une vidéo sur Youtube, SFR demande la vidéo à Google et la trans­met direc­te­ment à l’abonné – actuel­le­ment sans rien payer pour l’ac­cès à la vidéo.

    Non seule­ment le nombre de requêtes augmente mais en plus avec la fibre ce sont des vidéos très haute qualité qui sont deman­dées, très goinfres en bande passante. Le cas des mobiles avec une connexion inter­mit­tente et de faible qualité pose aussi problème.

    Youtube rappelle qu’il gère un service gratuit, déjà défi­ci­taire, avec « un réseau que SFR conti­nue à surchar­ger sans y contri­buer finan­ciè­re­ment ».

    L’abon­ne­ment inter­net SFR clas­sique coûte 29,90 € par mois et monte jusqu’à 45 € par an. Aucun rever­se­ment n’est fait aux diffé­rents four­nis­seurs de services et conte­nus qui enri­chissent la plate­forme, lais­sant ces derniers finan­cer seuls rede­vables des coûts d’in­fra­struc­ture et de bande passante néces­saires.

    Rien que pour Youtube – prin­ci­pal appor­teur de contenu des FAI – on a estimé le coût de bande passante à 400 millions en 2010. Ce coût a augmenté expo­nen­tiel­le­ment depuis.

    Faut-il impo­ser aux FAI une contri­bu­tion aux gros four­nis­seurs de services pour payer la bande passante et les conte­nus ? Le modèle de la contri­bu­tion des chaînes de télé­vi­sion aux studios de cinéma a déjà été évoqué.

    Les FAI qui veulent faire payer les gros four­nis­seurs de contenu à cause du trafic injecté dans leur réseau se tirent une balle dans le pied. Ils oublient que le rapport de force n’est pas forcé­ment à leur avan­tage sur le long terme, et que la situa­tion peut tout à fait s’in­ver­ser à l’ave­nir.

    En fait ça commence déjà : Les ayants-droits cherchent déjà à impo­ser une contri­bu­tion obli­ga­toire aux FAI pour « parti­ci­per à la créa­tion des conte­nus qui enri­chissent leurs offres »

    Ne pas oublier que quand Youtube « injecte » du trafic dans le réseau du FAI, c’est en fait qu’il répond à une requête du réseau du FAI. S’il y en a un des deux de respon­sa­ble…

    Photo d’en­tête sous licence CC BY-NC-SA par Hendrik Terbeck

  • Hygiène de sécu­rité

    Hygiène de sécu­rité

    Aujourd’­hui on véri­fie la sécu­rité.

    Les services en ligne « sensibles »

    Même en ne gardant que le prin­ci­pal, il faut penser à :

    • votre boite email (qui sert à la récu­pé­ra­tion des mots de passe de tous les autres comptes),
    • votre service de nom de domaine,
    • celle de secours (qui sert à la récu­pé­ra­tion du mot de passe de la boite prin­ci­pale),
    • votre service de backup,
    • vos services de stockage ou synchro­ni­sa­tion en ligne,
    • votre héber­geur de serveur en ligne si vous en avez.

    [ ] La première étape c’est s’as­su­rer d’avoir des mots de passe « sûrs ». Ça veut dire suffi­sam­ment longs et complexes.

    Suivant les préfé­rences c’est au moins huit carac­tères aléa­toires entre chiffres lettres et symboles, au moins 12 carac­tères avec des lettres rela­ti­ve­ment aléa­toires, ou au moins 15 carac­tères mini­mum si vous avez des suites de mots communs.

    Le l34t sp33k, l’in­ver­sion des carac­tères, l’ajout d’une année, et globa­le­ment la plupart des varia­tions auxquelles vous pour­riez penser sont testables en moins de quelques minutes donc n’ajoutent pas de complexité signi­fi­ca­tive.

    [ ] Seconde étape, s’as­su­rer que ces mots de passe sont uniques et vrai­ment diffé­rents (pas de simples varia­tions du même).

    Au grand mini­mum, s’as­su­rer d’avoir un mot de passe pour les services très sensibles diffé­rent du mot de passe que vous tapez tous les jours pour les services moins impor­tants. Ce mot de passe sensible ne devra être tapé que dans des espaces correc­te­ment sécu­ri­sés.

    [ ] Quand vous le pouvez, acti­vez l’ »authen­ti­fi­ca­tion en deux étapes ». C’est possible au moins pour Google, Gandi, Drop­box, iCloud. C’est fran­che­ment peu gênant vu la sécu­rité que ça apporte, ne pas le faire est limite une faute.

    [ ] Les « ques­tions secrètes » pour récu­pé­rer des comptes dont vous avez oublié les mots de passe sont de vraies plaies pour la sécu­rité. En géné­ral il est très facile d’en trou­ver la réponse.

    À vous de voir si vous préfé­rez tricher et mettre de fausses réponses (au risque de ne pas vous en souve­nir) ou si vous avez une grosse faille à cet endroit là. C’est le moyen d’ac­cès de la plupart des usur­pa­tions courantes.

    L’ac­cès depuis vos postes

    Tablette, télé­phone (même les « pas smart »), micro-ordi­na­teur, NAS de la maison…

    [ ] Tous doivent avoir un mot de passe à l’al­lu­mage et à la sortie de veille. Tous, pas d’ex­cep­tion.

    Sur les smart­phones et tablettes vous avez parfois la possi­bi­lité de mettre un « schema ». Ça fonc­tionne assez bien et c’est plutôt simple à déver­rouiller. Si vous n’avez pas d’autre choix, utili­sez le code PIN.

    Pour les autres les mots de passe doivent respec­ter les mêmes règles que pour les services en ligne.

    [ ] Tous ceux qui le peuvent doivent avoir un disque chif­fré. Micro-ordi­na­teurs, tablettes et smart­phones le permettent quasi­ment tous.

    Le coût en perfor­mance ou en batte­rie est quasi­ment nul sur les proces­seurs des 5 dernières années qui ont des circuits dédiés pour ces calculs.

    Sans ça n’im­porte qui avec très peu de connais­sances infor­ma­tiques peut passer outre votre mot de passe.

    Parfois il existe une procé­dure de récu­pé­ra­tion si jamais vous oubliez vos mots de passe, de façon à déver­rouiller le disque. Sur Apple par exemple ça utilise le compte iCloud. Dans ces cas, le compte utilisé pour la procé­dure de récu­pé­ra­tion doit être consi­déré comme sensible avec les mêmes règles que plus haut.

    [ ] Les mises à jour sont confi­gu­rées pour être télé­char­gées auto­ma­tique­ment, et instal­lées dès qu’elles sont dispo­nibles.

    [ ] Si vous enre­gis­trez vos mots de passe dans votre navi­ga­teur pour ne pas les ressai­sir à chaque fois, ce dernier doit avoir un « mot de passe maître ».

    Si en plus ces données sont synchro­ni­sées en ligne, le mot de passe qui gère le compte de synchro­ni­sa­tion doit être consi­déré comme sensible avec les mêmes règles que plus haut.

    [ ] Vous avez une poli­tique de backup auto­ma­tisé et testé pour toutes vos données impor­tantes. Bien entendu le compte qui permet d’ac­cé­der aux données de backup est à consi­dé­rer comme sensible.

    La machine qui reçoit les backup doit avoir un disque chif­fré et si vous faites appel à un service tiers le chif­fre­ment des données doit se faire côté client pour que le pres­ta­taire ne puisse pas déco­der les données.


    Tout ça est un mini­mum, main­te­nant imagi­nez quelqu’un qui connait la réponse à la ques­tion secrète de votre opéra­teur télé­pho­nique. À partir de ça il peut réini­tia­li­ser le mot de passe pour accé­der à votre compte. Là il a une inter­face pour lire et écrire des SMS. Il demande alors la réini­tia­li­sa­tion du mot de passe de votre boite email prin­ci­pale, qui se fait via SMS. À partir de là il réini­tia­lise le mot de passe de votre service de stockage en ligne, de backup, et de votre banque. Le voilà avec de quoi récu­pé­rer vos photos, même si vous les avez effacé, et peut être même de quoi faire des vire­ments. Situa­tion fictive mais on a vu des attaques bien plus inven­tives.

    Si vous avez lu jusqu’au bout (sérieu­se­ment ?) je suis curieux de savoir quelle propor­tion de ces bonnes pratiques vous vali­dez, ou si vous respec­tez tout en détail pour l’in­té­gra­lité de vos maté­riels et comptes sensibles.

    Photo d’en­tête sous licence CC BY-NC-SA par Steve Crane

  • Justice folle sur le numé­rique

    Notre justice est folle. Bon, celle des US, mais ça aurait pu se passer ici.

    No-ip est un service qui permet à des inter­nautes de donner un nom public à leurs machines person­nelles pour pouvoir y accé­der faci­le­ment depuis Inter­net. On parle de millions d’uti­li­sa­teurs.

    Ce service a été anec­do­tique­ment utilisé par des logi­ciels malveillants pour infec­ter des machines sous Micro­soft Windows.

    Réac­tion : Micro­soft s’adresse à la justice pour faire cesser le problème (plus exac­te­ment ici : filtrer les accès malveillants et réus­sir à en tracer l’ori­gine). La justice lui délègue tota­le­ment la gestion des noms de domaine No-ip corres­pon­dants.

    Bien entendu Micro­soft n’a pas eu l’in­fra­struc­ture suffi­sante pour gérer le trafic et le service No-ip s’est partiel­le­ment écroulé, lais­sant les utili­sa­teurs dans le noir.

    À vrai dire tout se serait bien passé que le scan­dale serait quand même là. La justice vient de donner à Micro­soft, qui n’est pas ciblé par les attaques infor­ma­tiques mais unique­ment concerné indi­rec­te­ment parce que ça exploite des failles de son OS, l’ac­cès aux noms de domaine d’une société tierce à qui on ne reproche rien.

    Avec ça Micro­soft contrôle (et ici a fait s’écrou­ler) le busi­ness d’un tiers, peut en tracer le volume, les clients, les services utili­sés, etc. Sans compen­sa­tion aucune.

    Tout ça sans même avoir contac­ter No-ip pour tenter de résoudre le problème en colla­bo­ra­tion initia­le­ment.

    Vous avez un .com ? prenez peur.

     

  • Auto­pre­fixer

    Je note ici autant pour ceux qui ne connaissent pas que pour mon moi de plus tard : Auto­pre­fixer, qui prend une CSS clas­sique et qui ajoute les versions préfixées utiles pour les diffé­rents navi­ga­teurs.

    Ça ne le fait pas bête­ment, genre pour flex­box ça sait gérer les diffé­rences de syntaxes. Bref : utile.

  • Reti­ring the Netflix Public API

    To better focus our efforts and to align them with the needs of our global member base, we will be reti­ring the public API program. Effec­tive on Novem­ber 14, 2014, public API deve­lo­pers will no longer be able to access Netflix content. All requests to the public API will return 404 errors.

    […]

    Thank you to all of the deve­lo­pers who have parti­ci­pa­ted in the ecosys­tem throu­ghout the years.

    Termi­ner comme ça c’est ajou­ter une insulte à l’hu­mi­la­tion.

    Vous nous avez bien servi, main­te­nant nous capi­ta­li­sons sur ce que vous avez créé et qui nous rému­nère le plus et nous vous coupons l’ac­cès au reste. L’éco­sys­tème ne nous inté­res­sait que le temps qu’on gagne une posi­tion domi­nante.

  • The empe­ror’s new clothes were built with Node.js

    Atten­tion ça va réagir :)

    I want to address one-by-one all of the strange and misgui­ded argu­ments for Node.js in one place.

    C’est chez Eric Jiang, et si c’est plein d’opi­nion, d’iro­nie et de cari­ca­ture, c’est quand même vrai sur le fond.

  • GPG keysi­gning and govern­ment iden­ti­fi­ca­tion

    Ok, je n’uti­lise pas GPG. J’ai tenté par le passé mais trop peu de gens en face l’uti­lisent pour que ce soit perti­nent de mon côté (oui, je sais que l’ar­gu­ment est cyclique).

    Have you been a US barten­der before? Or held any other posi­tion where you’ve had to verify an ID? It’s not an easy thing to do. People in those posi­tions have books of valid IDs from different states. They have lights that show the secu­rity marks. They still get it wrong regu­larly. A very amateur fake ID, or borro­wed real ID, will fool just about everyone in any infor­mal context.

    Par contre j’ai toujours trouvé idiot la procé­dure qui demande à ce qu’on véri­fie physique­ment l’iden­tité du corres­pon­dant. Ce qui m’in­té­resse c’est que la personne à qui j’écris ou qui m’écrit est bien celle que j’at­tends. Pour ça la seule solu­tion c’est de faire un ou plusieurs aller-retours écrits.

    Non seule­ment je ne serai abso­lu­ment pas capable de détec­ter une fausse carte d’iden­tité, même une mal faite à 30€, mais en plus je n’ai que faire de son iden­tité civile. Ce n’est pas du tout ce que je cherche à certi­fier.

    Entre ceux qui véri­fient l’iden­tité civile à la légère en lieu et place de l’iden­tité numé­rique, et ceux qui ne véri­fient rien, le « web of trust » est assez illu­soire aujourd’­hui. Il nous faut des outils qui auto­ma­tisent et guident nos pas, sans quoi rien ne chan­gera.

  • John Oliver (HBO) – Neutra­lité du net

    Ok, le ton est humo­ris­tique, et pas des plus fins, c’est déli­rant, ridi­cule, mais au final il y a des éléments sérieux et c’est un des meilleurs argu­men­taires que j’ai vu sur la neutra­lité du net.

    Ça se regarde jusqu’au bout.