Se protéger des failles XSS avec les headers CSP (Content Security Policy)

Les failles XSS (Cross-Site Scripting), étant classées en troisième position du dernier TOP 10 de l’OWASP, sont une porte d’entrée dans les systèmes d’information (scan de ports, exploits, etc.) et une menace pour les utilisateurs (vol d’information d’identifications). Les traditionnelles contre mesures mises en place sont le filtrage des données entrantes sur le serveur (input filtering) et l’encodage des données sortantes (output encoding) afin d’éviter l’exécution de scripts malveillants sur les postes clients. [Voir plus]

ASCII Folding dans Elasticsearch et appel de _analyze

Dans Elasticsearch, pour une faire une recherche sur un mot contenant un caractère unicode non présent dans la table ASCII (un accent par exemple) sans avoir à rechercher spécifiquement le mot avec ce caractère, une phase d’ASCII folding est nécessaire pour convertir ces caractères unicodes en leurs équivalents ASCII (si possible). Par exemple “ê” devient ”e”. Pour réaliser cette étape, le mapping du champ contenant ces caractères doit spécifier le filtre “asciifolding” fourni nativement par le moteur Elasticsearch. [Voir plus]

Backbone, Node.Js et SEO

Les frameworks javascript du type Backbone.js ou Angular.js sont en plein essor et permettent de construire rapidement et proprement des applications dites Single page application. Ce type d’application permet principalement d’améliorer l’expérience de vos utilisateurs. Lorsque l’utilisateur souhaite accéder à l’application, il envoie une requête sur un serveur web, qui lui répond par une page HTML classique. Cette page fait référence aux fichiers javascript de Backbone, underscore.js, jquery et le javascript contenant la logique de l’application basée sur Backbone. [Voir plus]

Feedbacks sur la garantie de la Surface RT

Depuis novembre 2012, j’ai une Surface RT de 32Go que j’utilise pour aller sur internet, mail, news, etc. Tout fonctionnait très bien jusqu’à la semaine derrière où une tâche jaunâtre est apparue dans la partie inferieure droite de l’écran (à côté du connecteur pour le chargeur). Après quelques recherches sur mon moteur de recherche préféré, je constate que je ne suis pas le seul à avoir ce soucis (exemple ici). Certaines personnes ont constaté ce problème dès la réception de la Surface alors que d’autres comme moi seulement après plusieurs mois. [Voir plus]

Skype et CPU élevé

Depuis quelques temps, j’ai remarqué que mon Skype consommait beaucoup de CPU alors qu’il était simplement démarré et connecté à mon compte. On peut le voir sur le screenshot de Process Explorer ci-dessous. Dans l’onglet “Threads”, on voit qu’un seul thread (TID = 8556) consomme la quasi totalité du CPU utilisé par Skype. Après avoir pris plusieurs dumps avec ProcDump (Skype semble ne pas trop aimer être breaké par WinDbg, il lance un nombre incalculable d’access violation lors de la libération du processus). [Voir plus]
CPU  Debug  Skype  WinDBG 

Afficher les chaînes de caractères situées dans un processus ou un dump

Récupérer la liste des chaînes de caractères (string) présentes dans la mémoire utilisée par un exécutable peut être intéressant (Mise en place d’interning par exemple). Cet article montre plusieurs manières de récupérer ces chaînes de caractères directement dans un processus live ou un dump. Dans les exemples ci-dessous, l’application console (.NET) récupère un mot situé sur une page web. Le but est de retrouver ce mot en mémoire. Process Explorer Avec un processus live, Process Explorer donne accès aux chaînes de caractères que ce soit en mémoire ou à l’intérieur du binaire. [Voir plus]

[TFS] MSBUILD : Logger error MSB4104: Failed to write to log file "C:\a\src\<Project>\<SolutionName>\<SolutionName>.log dans TFS

Grâce à Team Foundation Service disponible depuis peu, il est possible de faire de l’intégration continue directement via ce TFS online mais également de publier un site web sur Azure à chaque check-in. Cette étape se fait en quelques clicks et est très simple à mettre en place. La mise en place d’intégration continue sur Azure ou sur un TFS classique peut reserver quelques surprises et notamment l’erreur suivante lors de la build : [Voir plus]

Webcasts sur le debugging

Show très intéressant sur le debugging animé par Larry Larsen, Chad Beeder et Andrew Richards composé de webcasts d’une trentaine de minutes qui paraissent toutes les semaines. Les animateurs présentent les outils de la suites SysInternals, expliquent comment utiliser WinDBG pour debugger les applications .NET et natives, analyser des dumps de BSOD, etc… La plupart des concepts sont expliqués assez clairement même si certains épisodes (notamment sur les drivers) ont un niveau technique assez élevé. [Voir plus]

Rendre les adresses mémoire cliquables dans WindDBG

Petite astuce donnée dans l’émission DefragTools rendant l’utilisation de WinDBG un peu plus “clicky clicky” avec la version de SOS pour .NET 4. Par défaut, lorsqu’on affiche les objets de la stack .NET avec !dso par exemple, les adresses mémoire pointant vers les objets ne sont pas cliquables et il est necessaire de faire un : 0:000> !DumpObj xxxxxxxx pour accéder au contenu de l’objet : En tapant la commande : [Voir plus]

[.NET] Linq et type dynamique, attention au piège en .NET

Problème Le code suivant affiche « Numbers greater than 3 are : 6 7 » au lieu du « Numbers greater than 3 are : 4 5 6 7 » attendu. Savez-vous pourquoi ? class Program { static void Main(string[] args) { List<Int32> allNumbers = new List<Int32>() { 1, 2, 3, 4, 5, 6, 7 }; List<dynamic> greaterNumbers = new List<dynamic>(); // Finding all numbers from the "allNumbers" list that are greater // than "currentNumber" for (Int32 currentNumber = 0; currentNumber < 5; currentNumber++) { dynamic item = new ExpandoObject(); item. [Voir plus]