PROJET AUTOBLOG


le hollandais volant

Site original : le hollandais volant

⇐ retour index

[JavaScript] Voir si un visiteur est connecté à son compte Google, Twitter, Facebook, Microsoft…

jeudi 16 août 2018 à 14:56

Cette astuce montre comment savoir, en JS, si un visiteur est connecté à ses comptes sociaux. C’est tout bête, mais étonnamment ça marche à peu près partout.

Le principe

La plupart des sites ont une page de login :

https://exemple.com/login

Quand on accède à une autre page pour laquelle on doit être connecté, on est redirigé vers la page de login, dont l’URL mentionne alors l’URL ou le chemin qui avait été demandée :

https://exemple.com/login?redir=/page-demandée

L’astuce en JS, c’est de forger l’URL pour un site, en redirigeant sur une image. Typiquement, la favicon (présente sur tous les sites). Comme ça :

https://exemple.com/login?redir=/favicon.ico

On fait donc une requête AJAX et on regarde ce qui se passe :

En JS, ça veut dire que si on met l’URL forgée sur un img.src, alors :
– img.onload() fonctionne si l’utilisateur est connecté (img reçoit bien une image)
– img.error() est lancée si l’utilisation n’est pas connecté (img reçoit un document HTML).

On peut essayer, ça marche sur beaucoup de sites. Sur les liens suivants, si vous voyez l’icône, alors vous êtes connecté. Autrement, vous verrez la page de connexion du site.
Ce test peut très bien être effectué par n’importe quel site web sur tous les sites du monde. N’importe quel site web peut donc voir si vous êtes connecté ou non sur Twitter, Facebook, Amazon…

Essayer ici ?

ÉDIT : oui, le bouton "twitter" ne marche pas : ils semblent bloquer les requêtes comme ça. Tant mieux.
Si aucun compte n’est marqué "connecté" alors que vous l’êtes, souriez car c’est votre navigateur — ou une extension — qui vous protège.
Si le bouton ne fait rien du tout, c’est que vous bloquez les scripts sur mon site. C’est une bonne façon de se protéger aussi :).

Mais essayez dans un navigateur fraîchement installé, vous verrez, ça marche. Et c’est bien là le problème : la configuration par défaut des navigateurs laisse passer ce « problème ».

Vous pouvez tester ici, pour 5 sites :

<script>function socialNetworkTest(){var n=document.getElementById("socialMediaList");[{url:"https://twitter.com/login?redirect_after_login=https%3A%2F%2Ftwitter.com%2Ffavicon.ico",name:"Twitter"},{url:"https://www.facebook.com/login.php?next=https%3A%2F%2Fwww.facebook.com%2Ffavicon.ico%3F_rdr%3Dp",name:"Facebook"},{url:"https://accounts.google.com/ServiceLogin?passive=true&continue=https%3A%2F%2Fwww.google.com%2Ffavicon.ico&uilel=3&hl=de&service=youtube",name:"Google"},{url:"https://login.live.com/login.srf?wa=wsignin1.0&wreply=https%3A%2F%2Fprofile.microsoft.com%2FregsysProfilecenter%2FImages%2FLogin.jpg",name:"Microsoft"},{url:"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Ffavicon.ico%3Fid%3D1",name:"Github"}].forEach(function(e){var o=document.createElement("img"),t=document.createElement("li");o.src=e.url,o.onload=function(){t.appendChild(document.createTextNode(e.name+" : connecté")),n.appendChild(t)},o.onerror=function(){t.appendChild(document.createTextNode(e.name+" : non connecté")),n.appendChild(t)}})}

Le risque

Ici je ne fais rien de méchant. Par ailleurs, aucune information n’est envoyée à mon site.

Mais j’aurais pu.

J’aurais également pu faire ça massivement, et voir quel pourcentage de mes visiteurs sont connectés à Twitter, ou à Facebook.

Pire, si je vois que vous êtes connectés, alors il peut très bien lancer une requête sur la page de déconnexion et vous déconnecter :

http://example.com/logout?

Ce n’est pas dangereux, ça, mais c’est chiant.

Ce qui peut être dangereux, c’est si j’accède à ce genre de page :

Une solution ?

Pour l’internaute

Installez un bloqueur de requêtes, de scripts externes ou de publicité.

µBlock Origin peut bloquer toutes les requêtes vers les sites tiers.
L’extension kimetrak, elle, montre les requêtes qui sont faites.

Sous Firefox, on peut aussi isoler chaque site en mettant à « true » la clé suivante dans about:config : about:config?filter=privacy.firstparty.isolate (attention, ça va vous déconnecter de tous les sites, mais après il suffit de se reco et c’est bon). Merci à Mart-e pour l’astuce !

Pour les sites

Ça me semble assez simple : quand on accède à la page de login, alors on demande systématiquement de se connecter.
Peu importe si l’utilisateur est connecté ou pas, on exige une reconnexion. Seulement après la reconnexion on procède à la redirection.

C’est ce que fait par exemple Amazon : cette astuce, même avec le bon lien (ici) ne marche pas, car Amazon demande le mot de passe qu’on soit connecté ou pas. C’est bien.
Par contre, étrangement, c’est le cas pour Amazon.FR, mais pas pour Amazon.COM (lien de test), où l’astuce décrite ici fonctionne.

Sources

Ce « problème » n’est pas nouveau. Cet article, datant de 2012, en parle déjà : Detect if visitors are logged into Twitter, Facebook or Google+. Peu de sites semblent s’être bougés, pourtant.

J’ai mentionné Amazon.FR ci-dessus. Flickr et Yahoo semblent également avoir corrigé le problème.
La requête vers Twitter semble aussi poser problème quand elle est faite en AJAX. Pour les autres sites, je n’ai pas tout testé.

Il existe aussi des scripts tout fait avec plein de sites dedans, pour voir si on est connecté : login-check.js.

Sachez que tout ce qu’on navigateur affiche dans une page web, peut finir sur les serveurs de n’importe quel site qui possède un script dans cette page. Pensez-y.

Enfin, pour voir une liste d’informations que votre navigateur sait de vous : https://lehollandaisvolant.net/tout/tools/browser/

Astuce pour éviter de perdre votre téléphone Android…

mercredi 8 août 2018 à 17:26

Sur Twitter, je vois quotidiennement des messages du style « j’ai trouvé ce téléphone, aidez-moi à retrouver son propriétaire ! », et tout le monde de partager le tweet en espérant que le propriétaire tombe dessus (supposant déjà qu’il soit sur sur le réseau social).

Si le téléphone est déverrouillé (pas de code), on peut chercher dans les contacts ou trouver le compte social de son propriétaire (à faire à bon escient, évidemment).
S’il est verrouillé, c’est plus compliqué.

Sous Android, il y a pourtant une façon relativement simple : il suffit d’afficher un numéro de contact ou un e-mail sur l’écran de verrouillage.

Sur Android 8.1, il faut aller dans les Paramètres et de rechercher « message sur écran verrouillé », ou d’aller dans Sécurité et localisation > Verrouillage de l’écran et d’aller sur les paramètres de cette option.

paramètres d’android
Ensuite, on peut choisir de mettre un message sur l’écran verrouillé :

ajouter une message sur l’écran de verrouillage
Et le résultat :

capture d’écran du message qui s’affiche alors
Voilà !

C’est très rapide à mettre en place, mais pratique : comme ça, si vous perdez votre téléphone et que la personne qui le trouve essaye de vous retrouver, elle aura votre e-mail immédiatement.
Vous pouvez aussi ajouter votre nom, compte handle Twitter ou le numéro d’un proche.

N’y mettez évidemment pas le numéro de portable sur téléphone lui-même.

Pour aller plus loin, Android 7+ permet d’ajouter des informations d’urgence qui pourront être disponibles à quiconque vous « trouverait » en situation de détresse (malaise, évanouis…). Ces informations concernent votre nom, votre groupe sanguin, vos allergies et des personnes à contacter. Ça peut être très pratique pour les secours. Je vous laisse lire ça ici : Android et iOS : Partager des informations d’urgence en cas… d’urgence !.

La fin de notre civilisation ?

vendredi 3 août 2018 à 15:36

Cet article traite seulement le sujet des pauvres et des riches, et que s’il n’y a plus de pauvres pour produire ce que les riches ont besoin, ben ça sera fini. Je résume l’article du Point. Ceci est vrai, mais il ne terminera pas notre civilisation. Seulement notre modèle social.

Car pour notre civilisation, ceci ne suffit pas. L’article reste très superficiel. Pourtant, même si on regarde plus largement, la conclusion identique me semble inévitable. Peut-être pas « quelques décennies », mais quelques siècles, très certainement. C’est en tout cas mon avis.

Premièrement, notre civilisation vit grâce au pétrole (pour le transport, la chimie, les médicaments, la bouffe…), aux ressources minières (habitations, technologie…), végétales (bouffe, bois, et surtout la production d’oxygène et la réduction du CO2) et animales (bouffe, pollinisation…).
Les deux premières vont s’épuiser. Il viendra un moment où tout sera utilisé et où il faudra soit faire sans, soit avoir trouvé des alternatives durables et viables. On en est très loin. Par exemple, la voiture électrique c’est sympa pour se passer du pétrole, mais on a besoin de lithium pour les batteries, et ça n’est pas gagné. Aussi, s’il n’y a plus de pétrole, y a plus de plastique. On sera avancé.

Les deux dernières… ben… c’est tout aussi perdu, à ce rythme. Poissons, abeilles, petits oiseaux… toutes les populations sont en chute libre. Quant aux plantes, le fait de ne toujours planter que la même chose, on favorise l’apparition des parasites : on va tout droit vers le scénario d’Interstellar, où un parasite à détruit tout le blé et où le monde survit grâce au maïs. C’est déjà arrivé, à l’échelle d’un pays. Et ça recommencera.

Ensuite, deuxièmement, conséquence de la première : nos émissions polluantes sont trop importantes : déchets plastiques, déchets chimiques et surtout le CO2 tuent d’autres espèces animales et modifient le climat qui permet à TOUS de cohabiter (végétaux, animaux…).

Troisièmement, une conséquences davantage politique : les gens deviennent vraiment trop cons. Antivax, anti-science, terre-plate, homéopathie… toutes ces conneries pullulent et font aussi des morts et contribuent à des épidémies.
Un effet de bord, quand des gens parmi ces idiots arrivent au pouvoir, ben… la recherche scientifique stagne : la Nasa qui observe et alerte le monde sur l’état de santé de notre atmosphère est réduite au silence. Les labos de recherche sur les vaccins, contre le cancer, alzheimer, le sida, etc. ne sont plus financés assez (y compris en France)…

Enfin, quatrièmement, quand des têtes de mules comme Trump ou Kim J. Un se disputent, ils mettent l’humanité en jeu en jouant avec leurs missiles.

Bref, voilà juste quatre possibilités de fin de l’humanité. Et au rythme actuel, il n’est qu’une question de temps pour qu’un de ces trucs arrive :

Bonne journée :)

Comment tester un transistor

vendredi 20 juillet 2018 à 21:32

En jouant avec mon circuit de Slayer permettant de produire des très hautes tensions (~100 000 V), j’ai grillé le transistor qui se trouve dedans.

Le transistor est un transistor Mosfet W20NM60 de chez STMicroelectronics (specs). Quand il a grillé, ça n’a pas fait d’étincelles ni rien : le circuit a simplement cessé de fonctionner : le transistor a juste grillé silencieusement.

L’apparence extérieure n’a pas changé (pas noirci ni rien), et il m’a fallu apprendre à tester le transistor avec un multimètre, et c’est de ça que je vais vous parler.

Les transistors de puissance, comme ici, sont utilisables avec de fortes tensions. Ceci génère quelques effets parasites indésirables, dont un qui peut rendre le transistor totalement incontrôlable. Une solution à ce problème est de relier la source et le drain par une jonction PN, c’est à dire une diode. Le transistor ne peut maintenant contrôler le passage du courant que dans un seul sens du drain vers la source, mais le problème s’en trouve résolu. Un effet de bord à cela est que le courant allant dans l’autre sens, de la source vers le drain, peut lui toujours passer : c’est le sens passant de la diode :

schéma interne du transistor W20NM60

Méthode de test 1 : test de la diode

Pour vérifier si un transistor fonctionne, on peut vérifier si cette diode n’a pas claquée. Pour cela, il suffit d’utiliser le multimètre en mode « diode ». Or une diode n’est passante qu’à partir d’un certains seuil de tension, même en sens passant : c’est la tension de seuil. Le mode diode du multimètre mesure cette tension :

le mode diode sur un multimetre
Si la diode a claquée, est est totalement passante dans les deux sens : la tension affichée est nulle ou trop basse.
En pratique, il suffit de vérifier que le courant passe entre la source et le drain.

Sur un transistor fonctionnel, la tension est de 0,443 V dans le sens passant (donc avec le fil rouge sur la source (borne 3) et le fil noir sur le drain (borne 2)). Dans l’autre sens, la tension est « OL », ou « out limits », soit hors des limites mesurables par l’appareil. Autrement dit, la diode est bien bloquante dans ce sens.

On peut aussi constater que les tensions entre la grille et le drain, la grille et la source sont toutes « OL ».

Sur le transistor grillé, maintenant, je constate que la tension précédemment à 0,443 V est passée à 0,005 V, dans un sens ou dans l’autre. Le courant passe très bien, le transistor n’est jamais bloquant et il est donc bien mort…
Je note aussi que le courant passe entre la grille et la source , avec une chute de tension très faible de 0,227 V, là où elle devrait être « OL ». Mon transistor est donc bien mort…

Méthode de test 2 : test de la capacité de la grille

Une autre méthode de mesure consiste utiliser la capacité de la grille : la grille d’un transistor à effet de champ constitue une porteuse de charges électriques. S’il y a des charges sur la grille, le champ qu’il produit permet le passage d’électrons entre la source et le drain.
Vu que le multimètre en mode diode délivre un courant, on peut légèrement charger la grille : il suffit de toucher la grille (la borne 1) avec le fil noir, tout en maintenant le fil rouge sur la source.

La grille légèrement chargée, le transistor est légèrement passant : il existe une petite tension entre le drain et la source. Inversement, la tension de seuil dans le sens de la source vers le drain devrait avoir augmentée.

Dans mon cas, je mesurais 0,443 V entre la source et le drain. Après avoir chargé la grille, cette tension passe à 0,472 V.

Quand je décharge la grille (borne rouge sur la grille et borne noir sur le drain), la tension redescend : je mesure alors 0,442 V : ce transistor répond donc parfaitement et fonctionne normalement.

Cette même manipulation sur le transistor grillé n’a aucun effet : la structure interne du composant étant détruit, la grille ne stocke plus de charges et le courant peut librement passer dans tous les sens : on devrait voir à peu près 0 V entre n’importe quelle borne…

Compléments et info

Voilà donc pour vérifier un transistor Mosfet.
Dans les autres transistors (comme le transistor bipolaire), ils correspondent grosso-modo à deux diodes collées ensembles. Le mode diode du multimètre permet donc de les vérifier également.

Ci-dessous, quelques explications sur les transistors.

Le transistor W20NM60 est de type Mosfet (metal-oxyde seconductor field effect transistor, donc « transistor à effet de champ à structure métal-oxyde-semiconducteur »). Il est donc très légèrement différent au transistor bipolaire classique dont j’explique le fonctionnement dans mon article sur les transistors.

Pour faire rapide, les transistors Mosfet utilisent une grille isolée (un conducteur isolé, donc relié à rien, au sein du composant, et correspondant à une des trois pattes du composant) et des champs électriques (d’où le « à effet de champ ») pour contrôler la circulation d’électrons sous la grille.
La mise sous tension de la grille va produire un champ électrique dans le composant : ce champ va repousser ou attirer les électrons plus ou moins fortement dans un conducteur, et donc contrôler la circulation du courant, un peu comme un robinet plus ou moins ouvert contrôle le débit d’eau (sauf qu’ici, on contrôle le débit à distance avec un champ électrique).

Le problème de ces composants, c’est que si la tension est trop forte, le champ électrique créé est trop intense et les électrons sont forcés à circuler dans les régions isolantes du composant. On assiste dès lors au claquage du composant : les 3 pôles du transistor se trouvent reliés à une même zone devenue entièrement conductrice et le courant peut circuler comme il veut, hors de tout contrôle.

Si vous avez suivi :

Grâce au multimètre, on vérifie l’état du robinet, en regardant si le courant passe ou non quand on le laisse fermé. Le multimètre constitue ici une méthode bon marché pour tester un transistor. Bien-sûr, il ne permet pas de vérifier le niveau d’usure ou ses paramètres (temps de réponse, tension de claquage, etc.) qui sont présentées dans sa fiche technique (lien donné plus haut).

1998-2018 : vingt ans de politique sécuritaire

mardi 17 juillet 2018 à 18:06
19982018
ii

… me semble que certains nous demandaient ce que les lois anti-terroristes (soi-disant) allait changer sur nos vies. Bah voilà : nos vies.

Sur ces images, la vie, la bonne ambiance, la fraternité, l’égalité, l’unité, ont laissé place à l’encadrement policier, la rigidité, la scission. Ces deux photos renvoie une image très forte, qui est simplement le reflet de vigipirate, de l’état d’urgence de ces dernières années.

Ceci n’est qu’un exemple, mais il y en a plein. Vous avez vu la tour Eiffel récemment ? Vous vous souvenez quand on pouvait se promener en dessous librement ?
Ou les commerces : vous vous souvenez quand on pouvait rentrer dans un magasin tranquillement ?
Ou que les parcs et les jeux pour enfants n’étaient pas entourés de grillage (je n’ai pas dit "barbelés" car ça serait faux, mais l’esprit y est) ?
Que la présence de caméras était anecdotique et non systématique (avouez le petit malaise à chaque fois qu’on en croise une, allez-y) ?

C’est drôle, parce tout ça c’est soi disant pour contrer le terrorisme. Pourtant y a jamais eu autant d’attaques que ces 4~5 dernières années, en France. Et à chaque fois la réponse du ministère de l’intérieur a été la même, avec les mêmes résultats : de l’inefficacité, et toujours plus une ambiance de peur, de crainte, de méfiance constante.

Merci Sarkozy, Cazeneuve, Valls pour tout ça. Merci pour le terreurisme.