Implémenter une authentification par formulaire avec OWIN et ASP.Net MVC 5

Depuis un moment déjà Microsoft porte ses efforts sur la modularité, la portabilité et la performance de la plateforme ASP.Net. C'est dans ce contexte qu'a été créé le standard OWIN. Le framework ASP.Net MVC 5 implémente ce standard pour ses fonctionnalités de sécurité. L'authentification par formulaire, très populaire sur la plateforme ne fait pas exception.

Passage d’une liste d’objet d’une vue vers le contrôleur

Dans cet article, nous allons voir comment passer une liste d’objet d’une Vue vers le Contrôleur.

Asp.net MVC DefaultModelBinder:

Avec l’utilisation de la DefaultModelBinder dans ASP.NET MVC, vous pouvez lier les valeurs de formulaires soumis dans la Vue à des arguments d'une méthode du Contrôleur.

Mais le problème c’est qu’on ne peut pas lier directement un formulaire posté à une collection d’objet ICollection<T>.

Une erreur mystérieuse en ASP.NET !

Erreur 4 Le type 'System.Data.Objects.DataClasses.EntityObject' est défini dans un assembly qui n'est pas référencé. Vous devez ajouter une référence à l'assembly 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Voici une erreur qui paraît être explicite, mais qui… ne l’est pas toujours !

Introduction à ASP.NET WebAPI (partie 1)

Dans ce billet, mon but est de vous initier à ASP.NET WebAPI de Microsoft, permettant facilement d'ouvrir vos données vers l'extérieur.
Bien que WebAPI fasse partie intégrante d'ASP.NET MVC 4, lors de la réalisation de cet article je n'avais accès qu'à une machine sous Vista SP1. Etant donné les problèmes de compatibilité de cette ancêtre avec les dernières versions des outils Microsoft (Visual Studio ou ASP.NET MVC), j'ai été contraint de travailler avec ASP.NET MVC 3 et d'ajouter (via NuGet) les références à WebAPI.
Je vous propose donc de découvrir comment fonctionne WebAPI sous Visual Studio 2010, via la création d'un projet "serveur" qui va héberger mon API. Dans un futur billet, je vous montrerai comment créer simplement un client utilisant jQuery pour consommer cette API.

TechEvening à Lyon sur la sécurité des applications Web

Ce lundi s'est déroulé à Lyon un TechEvening consacré à la sécurité des applications Web. Nous avons testé les différentes techniques et outils utilisés par les utilisateurs malveillants. Deux applications ont été utilisées, l'une en J2EE pour la plupart des techniques (WebGoat 5.3 de la fondation OWASP) et l'autre en ASP.NET MVC 3 pour un focus sur les perfides attaques CSRF.

Au programme:

  • Injection: diverses techniques d'injection SQL;
  • Cross-Site Scripting (XSS): techniques de phishing et de "session hijacking";
  • Violation de gestion d'authentification et de session: technique de "session fixation";
  • Références directes non sécurisées: techniques d'"AC Bypass" aux niveaux données et métier;
  • Cross-Site Request Forgery (CSRF): technique du "Token Bypass";
  • Mauvaise configuration de sécurité: technique de "Malicious File Execution";
  • Stockage cryptographique non sécurisé: sensibilisation au "hashing" et "salting";
  • Manque de restriction URL: technique du "forced browsing";
  • Protection insuffisante de la couche transport: "sniffing", "ARP spoofing" et "ARP poisoning"
  • Redirections et renvois non validés: techniques du "HTTP splitting" et du "cache poisoning"

Nous avons utilisé les outils suivants:

  • Firefox
  • Fiddler
  • Firebug
  • TamperData
  • WireShark

Vous pouvez retrouver ci-après tous les supports:

  • L'application WebGoat 5.3;
  • L'application CSRFDemo ASP.NET MVC 3;
  • Les slides (PPTX ou PDF) de présentation;
  • Quelques fichiers utilisés pour les attaques;

Pour ceux qui s’intéressent plus globalement à la sécurité des applications .NET (pas qu'en Web), je vous invite à lire l'article suivant sur l'altération des assemblages, l'injection de code et la suppression des signatures cryptographiques. Une vidéo est également disponible.