Articles

Blockchain: Préparer son environnement de développement avec MultiChain

Image
Cet article n’a pas pour vocation de présenter une nouvelle fois les concepts de la blockchain, mais plutôt d’aborder cette technologie du point de vue du développeur.

Deux approches s’offrent à vous : utiliser un réseau de nœuds existants (Ethereum, Hyperledger, Azure BaaS) et y greffer vos transactions ou contrats, ou bâtir votre propre réseau. Cette seconde solution s’appliquera nettement mieux à un projet de blockchain privée. Car, rappelons-le, la blockchain est avant tout un système de stockage de données décentralisé, sécurisé et fonctionnant sans organe central de contrôle.

Pour mes propres expérimentations, j’ai choisi la plateforme MultiChain, qui offre le double avantage d’être Open Source et de proposer des API dans de nombreux langages de développement (Node.JS, C#, Python, Go). Son déploiement est également extrêmement simple (xcopy). La communauté est très active et offre un très bon support. La documentation est assez complète. Mais vous devrez maîtriser un minimum de…

Utiliser un certificat SSL Let's Encrypt sous IIS 8

Image
Vous l'aurez certainement remarqué, les navigateurs web deviennent chaque jour de plus en plus pointilleux avec les sites web qui ne supportent pas le protocole HTTPS.
Firefox a même commencé à marquer des avertissements sur les formulaires contenant des mots de passe et il ne faudra plus longtemps avant que Google ne fasse chuter le ranking de votre site web dans ses résultats de recherche si vous ne cryptez pas les communications de votre serveur.

Depuis longtemps les certificats SSL web étaient uniquement accessibles contre paiement. C’est dorénavant de l’histoire ancienne depuis décembre 2015, grâce à l’arrivée de l'initiative Let’s Encrypt.

Fondée par l'Internet Security Research Group (ISRG), une organisation d'intérêt public californienne, Let’s Encrypt a pour objectif de rendre le web plus sûr en fournissant gratuitement des certificats SSL à tous ceux qui en ont besoin. Elle prend la forme d’une Autorité de certificat ouverte, gratuite et automatisée. Elle es…

Tutorial - Votre premier projet .NET Core 1.1.1 sous Windows

Image
L'année dernière, j'avais écrit un article dans ce blog pour partager avec vous mes premiers pas avec le framework .NET Core sous Ubuntu. Depuis, j'avoue que j'avais un peu abandonné mes expérimentations pour me lancer dans l'apprentissage du langage Go et de Node.js.

Pendant ce temps, .NET Core a poursuivi son évolution grâce à la communauté Open Source. Avec la sortie de la version 1.1.1, j'ai décidé de me replonger dedans et je dois dire que j'ai été agréablement surpris.
Bien entendu, Visual Studio (désormais disponible en version 2017) reste l'environnement de choix pour développer en .NET.
Cependant, dans cet article, j'ai choisi d'utiliser le SDK en ligne de commande, d'une part parce que je peux ainsi travailler sous n'importe quel OS et d'autre part, parce que l'installation est ridiculement rapide et permet de se créer un environnement de test sans polluer son poste de travail ni devoir installer de machine virtuelle.

Démonstration d'une Blockchain

Image
Une excellente petite démonstration réalisée par  Anders Brownworth pour vous aider à mieux comprendre le fonctionnement d'une BlockChain. Pour la mettre en place, si vous avez déjà installé Git et Node.js sous Windows, ouvrez tout simplement un Command Prompt et tapez les commandes suivantes:

c:
cd\
cd projects

git clone https://github.com/anders94/blockchain-demo.git

cd blockchain-demo
npm install

cd bin

node www

Ouvrez ensuite votre navigateur préféré et surfez sur http://localhost:3000:



Très instructive également cette vidéo de Shai Rubin, CTO of Citi Innovation Lab:

ASP-NET: The URL-encoded form data is not valid

Image
In ASP.NET 4.x, there is an upper bound on the number of simultaneous HTTP form elements that may be posted. The default is 1000 without explicitly changing it with this key in the <appSettings> portion of the web.config:

<configuration>
  <appSettings>
    <add key="aspnet:MaxHttpCollectionKeys"
    value="2000" />
  </appSettings>
</configuration>

This patch was released by Microsoft in 2011 to prevent a Denial of Service vulnerability that involved an attacker overwhelming a request with too many keys (the science of which is beyond the remit of this question).


Here is the official statement from Microsoft:

This security update resolves one publicly disclosed vulnerability and three privately reported vulnerabilities in Microsoft .NET Framework. The most severe of these vulnerabilities could allow elevation of privilege if an unauthenticated attacker sends a specially crafted web request to the target site. An attacker who successfu…

Installer ASP.NET Core 1.0 sous Xubuntu 14.04

Image
Cela fait maintenant plus d'une année qu'on entend parler de ASP.NET 5, vNext, .NET Core... Difficile de s'y retrouver dans le nouvel écosystème de développement Microsoft. Une chose est sûre cependant: on ne peut qu'applaudir les efforts du géant de l'informatique pour s'ouvrir au monde de l'Open Source.

Ces changements peuvent faire peur, surtout pour les fidèles de la plateforme .NET originale. Chacun a son expérience et ses habitudes bien ancrées. Quel sera le futur de .NET? Dans quel direction orienter ses futurs développements?

Là encore, l'arrivée d'une nouvelle mouture de .NET "open source" et "cross-platform" ne pourra que renforcer l'adoption de ce framework.

Autopsie d'un malware en Javascript

Image
Cette semaine, un de mes collègues a reçu un e-mail contenant un fichier "SCANNED IMAGES.zip". Ne connaissant pas l'expéditeur, il m'a demandé s'il pouvait ouvrir ce fichier sans risque ou s'il devait le supprimer.

Curieux de voir de quoi il s'agissait, je lui ai demandé de me forwarder ce message.

Une fois le fichier ZIP attaché sauvegardé, j'ai tout d'abord examiné son contenu avec 7Zip, sans le décompresser.

L'archive contenait un seul fichier, baptisé YY9861891780.js.

Par sécurité et pour éviter un double-clic fatal, j'ai renommé le fichier en .txt avant de l'extraire.