index.fr.md 4.64 KB
Newer Older
Cyrille Chopelet's avatar
Cyrille Chopelet committed
1
---
Cyrille Chopelet's avatar
Cyrille Chopelet committed
2
date: 2020-04-06T07:21:32+02:00
Cyrille Chopelet's avatar
Cyrille Chopelet committed
3
4
5
title: Le Download Proxy est de retour
subtitle: Contournez un pare-feu contrariant et concentrez-vous sur votre travail
slug: download-proxy-retour
6
7
8
description: |-
  Le Download Proxy est un outil que j'ai conçu pour contourner les pare-feu qui ralentissaient mon travail.
  Voici la v2.
Cyrille Chopelet's avatar
Cyrille Chopelet committed
9
cover:
10
  banner: false
Cyrille Chopelet's avatar
Cyrille Chopelet committed
11
12
13
14
  src: peter-holmes-ladder-stile-over-stone-wall.jpg
  alt: Échalier surplombant un mur de pierres
  by: Peter Holmes
  link: https://www.geograph.org.uk/photo/5150108
15
  authorLink: https://www.geograph.org.uk/profile/17959
Cyrille Chopelet's avatar
Cyrille Chopelet committed
16
17
  license: CC BY 2.0
author: chop
18
19
20
categories: [ projects, kp.org ]
tags: [ java, quarkus ]
keyword: [ download proxy, pare-feu, php, java, quarkus, base64 ]
21
22
23
24

preface: |-
  Une nouvelle version du Download Proxy a été publiée, avec de nouvelles fonctionnalités.
  Lisez le billet associé [ici](/blogue/2021/01/nouvelles-transformations-download-proxy/).
Cyrille Chopelet's avatar
Cyrille Chopelet committed
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
---

Il y a quelques années, j'ai eu des difficultés à télécharger des fichiers dont j'avais besoin pour travailler.
Il n'est pas inhabituel de donner aux développeurs des droits plus élevés sur leur machine, mais cela ne s'étend pratiquement jamais au pare-feu.
En conséquence, ils ont le droit d'installer tous les logiciels utiles, mais ils sont pourtant incapables de les télécharger sans des échanges pénibles avec un service de sécurité parfois situés dans une autre ville.
C'est pénible.
Et c'est pourquoi j'ai créé le Download Proxy.


<!--more-->

## La petite histoire

Le Download Proxy est la première chose qui a existé sur keyboardplaying.org.
Il était basé sur un besoin que je partage avec plusieurs développeurs que je connais.
Certains d'entre eux ont utilisé la v1 du proxy jusqu'à ce que je le décommissionne il y a quelques mois.

Quand j'ai commencé, je travaillais pour une compagnie d'assurance.
J'ai découvert que leur pare-feu bloquait les téléchargements principalement sur base du type de fichier.
Quelques tests rapides ont prouvé que changer l'extension du fichier téléchargé suffisait à le contourner.

J'ai bricolé un outil PHP pour faire précisément ça : rediriger le flux d'un téléchargement en modifiant quelques détails.
Cyrille Chopelet's avatar
Cyrille Chopelet committed
47
Toutefois, PHP n'est pas (ou plus ?) ma spécialité et le code est resté sale.
Cyrille Chopelet's avatar
Cyrille Chopelet committed
48
49
50
Je n'ai pas osé le publier par peur de failles de sécurité.

Les pare-feu ont évolué, rendant ces transformations obsolètes.
51
J'ai ajouté la possibilité de compresser les fichiers à la volée, mais les pare-feu ont ensuite commencé à analyser le contenu des zips et les bloquer lorsqu'ils en étaient incapables --- à cause d'un mot de passe, par exemple...
Cyrille Chopelet's avatar
Cyrille Chopelet committed
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67

J'ai laissé l'outil à l'abandon pendant un temps, utilisant d'autres moyens de contournement dans l'intervalle.



## L'arrivée de la version 2 (beta)

Je viens de la publier, en même temps que ce billet.
Elle est disponible [ici]({{< relref path="/tools/dl-proxy" >}}).

Son utilisation est simple : saisissez l'adresse, choisissez une transformation à appliquer, validez et patientez.

Les transformations disponibles sont les suivantes :
* **Pas de transformation** : le fichier est téléchargé depuis le domaine du proxy au lieu de l'adresse originale.
Simple et efficace pour contrer des règles basées sur le domaine.
* **Encodage en base64** : télécharge un fichier texte contenant la représentation du fichier original.
Cyrille Chopelet's avatar
Cyrille Chopelet committed
68
Le fichier sera plus volumineux que l'original, et certains pare-feu prendront du temps à vouloir l'analyser, mais cela a été mon approche par défaut depuis quelque temps et je n'ai pas encore été bloqué en l'utilisant.
Cyrille Chopelet's avatar
Cyrille Chopelet committed
69
70
71
72
73
74
75
76
77
78
79
80
81

J'ai fait quelques tests rapides, mais il se peut qu'il rencontre des difficultés sur des fichiers plus volumineux.
N'hésitez pas à [signaler un problème](https://gitlab.com/keyboardplaying/download-proxy/issues) pour que je puisse améliorer les choses.



## Le changement technologique

Comme beaucoup de développeurs, j'adore jouer avec de nouvelles piles et technologies.
Je suis plus à l'aise avec Java et j'ai décidé d'y revenir afin de mieux sécuriser le code.
Je meurs d'envie de jouer avec [Quarkus] depuis un moment et cela a été l'opportunité.
Les performances et optimisations qu'il apporte sont impressionnantes, mais c'est certainement un sujet à aborder dans un autre billet.

Cyrille Chopelet's avatar
Cyrille Chopelet committed
82
83
J'ai tenté de concevoir une solution plus générique, où les transformations s'approchent davantage de plug-ins, afin de pouvoir les ajouter aisément.
J'en ai déjà [quelques-unes](https://gitlab.com/keyboardplaying/download-proxy/-/issues?label_name%5B%5D=Transformations) en tête, que j'espère pouvoir concrétiser dans les mois à venir.
Cyrille Chopelet's avatar
Cyrille Chopelet committed
84
85

[Quarkus]: https://quarkus.io