Weekly Shaarli
Week 25 (June 20, 2022)
Une awesome liste de moteurs de recherche et autres ressources liées à la sécurité informatique et la recherche d'informations sur une cible.
Mon best-of:
- Virus Total excellent antivirus en ligne
- Have I Been Pwned savoir si votre adresse e-mail a été compromise et surtout par qui
- Spy On Web identifier des domaines liés entre eux, notamment via les trackers (l'arroseur arrosé 😉)
- That's Them annuaire inversé pour téléphones et e-mails
- Exploit DB chercher un exploit pour une version spécifique d'un logiciel
- Shodan basé de données de TOUS les services exposés sur internet
Un article très complet sur le fonctionnement des lexer / parser de v8 (Chrome, Node.js) et SpiderMonkey (Firefox)
On comprend notamment que v8 se "plie" aux conventions des outils de minification du code ou encore que le point virgule est bien nécessaire ;-)
Un mix entre bash et javascript pour écrire des scripts bash avec plus d'aisance. (Car oui écrire des scripts un peu compliqué en bash est une chienlit..)
#!/usr/bin/env zx
await $`cat package.json | grep name`
let branch = await $`git branch --show-current`
await $`dep deploy --branch=${branch}`
Decathlon à organisé un live bug bounty, cela s'apparente à une compétition type hackaton mais dont le but est de trouver des failles de sécurité.
A priori cela a porté ses fruits car entre autre une RCE (Remote Code Execution, une faille parmi les plus critique) et une injection SQL ont été découvertes.
La cible était la plate-forme e-commerce réalisée avec Prestashop.
Un meta article qui résume pleins de choses sur les Service Workers des navigateurs.
Un article très complet sur l'utilisation de AbortController pour annuler des requêtes réseau en cours notamment.
Je ne savais pas qu'il était aussi possible d'arrêter un listener de cette manière ! C'est pratique car il n'y a pas besoin de garder une référence sur la callback.
const controller = new AbortController();
const { signal } = controller;
window.addEventListener('resize', () => doSomething(), { signal });
// later
controller.abort();Analyse détaillée d'informations extraites de Tinder via des bots connectés sur leur API.
Les explications des outils d'analyse (Python, Panda, Numpy, etc) et les snippets sont bien expliqués 👍
Amazon annonce une alternative à Copilot (Github/Microsoft).
Il y a fort à parier que leur IA a aussi été entraînée avec le code open source sur Github.
A noter que Github Copilot est maintenant payant (10$/mois)
Les Service Workers ne vont pas magiquement améliorer les performances d'une application notamment car l'envoi de données entre les processus (postMessage) est relativement lente comme tous les autres mécanismes d'Inter Process Communication (IPC)
En général pour faire des calculs intensifs il est préférable de le faire durant le temps restant après que le navigateur ait terminé le rendu d'une frame de la page Web avec requestIdleCallback
Très bon explication sur les différences entre les Map et les POJO en Javascript.
En substance:
- utilisez les POJO lorsque le nombre de clé est connu d'avance et en tant que Data Transfer Object (DTO)
- utilisez les
Mappour tout ce qui s'apparente à un cache RAM et nécessite des insertions/deletions arbitraires
Lorsqu'elle sont bien utilisées, les Map auront une meilleure performance, utilisent moins de RAM et offre une meilleure API plus complète POJO (e.g. Map.clear) au prix d'une perte en DX (e.g. initialisation, spread operator)
Un runtime Javascript (comme v8 qui est utilisé dans Chrome et Node.js) qui utilise seulement 8.5 Ko d'espace disque et minimum 34 octets de RAM!
Le but est d'utiliser du Javascript dans des micro contrôleurs qui pour la plupart ont 64 Ko de disque et 2 Ko de RAM.
L'auteur défend son projet avec notamment l'argument du single thread de javascript qui consomme moins de ressources que le multi thread.
On peut aussi ajouter qu'il est nettement plus simple et maintenable d'écrire du JS à mémoire managé que du C.