Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet

cr  01.04.2012      r+  22.10.2024      r-  22.10.2024      Pierre Pinard.         (Alertes et avis de sécurité au jour le jour)

Ce formulaire vous permet d'encoder un texte en échappement% ou, inversement, de décoder un texte en échappement%.

Dans cette fenêtre, le texte en clair


Dans cette fenêtre, le texte encodé


Utilisation :

  • Saisir un texte "normal" dans la boîte de saisie du haut pour en obtenir le codage en "échappement %" dans la boîte de saisie du bas.
  • Saisir un texte encodé en "échappement%" dans la boîte de saisie du bas pour en obtenir la version décodée dans la boîte de saisie du haut.
Ceci est généralement utilisé pour le passage d'arguments dans les URI et est utilisé pour le cryptage des URL par les spammeurs et les sites crapuleux. Les autres raisons de son utilisation sont :
  • la protection des codes sources des pages html, qui deviennent difficilement lisibles à ceux qui cherchent à contourner vos protections d'accès à certaines zones, usurper les paiements etc. ...
  • la protection contre les robots sans capacité de décodage JavaScript, écumant le Net à la recherche d'adresses e-mail ou de contenu etc. ...
Autres ressources :
  • CWShredder (ancienne version, avant le rachat par Intermute le 19 Octobre 2004). Le lancer en mode "debug" (un mode caché, commenté sur notre fiche CWShredder, qui donne accès à des outils additionnels). Téléchargement de l'ancienne version et utilisation du mode "debug" de CWShredder
    CWShredder

  • Faire un "ping" sur l'url stupidement cryptée retournera, parmi les informations, le nom de domaine en clair
    Ping - Comment faire un Ping
    NSLookup - Comment faire un NSLookup

Escape Code (Échappement %) - De quoi s'agit-il ?

Vous avez déjà vu des URLs avec cette tête ?

https://%61%73%73%69%73%74%65%2e%66%72%65%65%2e%66%72%2f%70%2f%63
%6f%64%65%5f%64%65%63%6f%64%65%2f%64%65%63%6f%64%65%5f%65%63%68
%61%70%70%5f%76%65%72%73%5f%75%74%66%38%2e%70%68%70

L'URL utilise un codage légitime, mais inhabituel, utilisant des "séquences d'escapes" et appelé "échappement %".

Avec de tels liens, vous ne savez pas où vous allez atterrir et, comme l'usage d'un tel encodage est complètement inhabituel, on est persuadé qu'il y a quelque chose de caché, à commencer par le nom de domaine contenu dans l'URL et tout le contenu de l'URL. Cette méthode est utilisée par les sites crapuleux, les sites bénéficiaires de spam commerciaux etc. ... Le formulaire suivant permet de décoder ces URLs. En fait, il permet de décoder n'importe quelle chaîne de caractères codée avec des séquences d'escape.

Le codage des URLs (des liens hypertexte) répond à une syntaxe qui a été voulue, dès le départ, ouverte aux futurs protocoles possibles et imaginables et être utilisable par tous les systèmes déjà existants.

  • Une URL débute toujours par un champ qui définit le schéma de nommage dans lequel l'objet référencé se situe. Par convention ce champ contient donc le nom du protocole, par exemple http, https, ftp, gopher etc. ...
  • Un séparateur (un délimiteur), le caractère ":"
  • La suite de l'URL, suite qui dépend directement de la valeur du premier champ

C'est donc l'usage de la bonne vieille table de caractères normalisée, la table ASCII (American Standard Code for Information Interchange) qui a été retenu. Cette table est constituée de tous les caractères imprimables (que l'on voit et trouve donc sur un clavier) mais aussi de certains autres, non imprimables et non visibles sur un clavier. Ils sont, traditionnellement, utilisés, par exemple pour donner des ordres de format aux imprimantes "caractère" (sauts de page, sauts de ligne, tabulation etc. ...). Leur utilisation est nécessaire car certains services utilisent ces caractères spéciaux comme éléments du protocole (gopher, par exemple, utilise le caractère Tab (%09) comme séparateur de champ).

 0123456789ABCDEF
0NULSOHSTXETXEOTENQACKBELBSTABLFVTFFCRSOSI
1DLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUS
2espace!"#$%&'()*+,-./
30123456789:;<=>?
4@ABCDEFGHIJKLMNO
5PQRSTUVWXYZ[\]^_
6`abcdefghijklmno
7pqrstuvwxyz{|}~ 
8 ƒˆŠŒ Ž 
9 ˜šœ žŸ
A ¡¢£ ¥|§¨©ª«¬¯®¯
B°±²³´µ·¸¹º»¼½¾¿
CÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ
DÐÑÒÓÔÕÖ ØÙÚÛÜÝÞß
Eàáâãäåæçèéêëìíîï
Fðñòóôõö÷øùúûüýþÿ

Le même tableau pour les paresseux :

 0123456789ABCDEF
0NULSOHSTXETXEOTENQACKBELBSTABLFVTFFCRSOSI
1DLEDC1DC2DC3DC4NAKSYNETBCANEMSUBESCFSGSRSUS
2espace
%20
!
%21
"
%22
#
%23
$
%24
%
%25
&
%26
'
%27
(
%28
)
%29
*
%2A
+
%2B
,
%2C
-
%2D
.
%2E
/
%2F
30
%30
1
%31
2
%32
3
%33
4
%34
5
%35
6
%36
7
%37
8
%38
9
%39
:
%3A
;
%3B
<
%3C
=
%3D
>
%3E
?
%3F
4@
%40
A
%41
B
%42
C
%43
D
%44
E
%45
F
%46
G
%47
H
%48
I
%49
J
%4A
K
%4B
L
%4C
M
%4D
N
%4E
O
%4F
5P
%50
Q
%51
R
%52
S
%53
T
%54
U
%55
V
%56
W
%57
X
%58
Y
%59
Z
%5A
[
%5B
\
%5C
]
%5D
^
%5E
_
%5F
6`
%60
a
%61
b
%62
c
%63
d
%64
e
%65
f
%66
g
%67
h
%68
i
%69
j
%6A
k
%6B
l
%6C
m
%6D
n
%6E
o
%6F
7p
%70
q
%71
r
%72
s
%73
t
%74
u
%75
v
%76
w
%77
x
%78
y
%79
z
%7A
{
%7B
|
%7C
}
%7D
~
%7E
 
%7F
8
%80
 
%81

%82
ƒ
%83

%84

%85

%86

%87
ˆ
%88

%89
Š
%8A

%8B
Œ
%8C
 
%8D
Ž
%8E
 
%8F
9 
%90

%91

%92

%93

%94

%95

%96

%97
˜
%98

%99
š
%9A

%9B
œ
%9C
 
%9D
ž
%9E
Ÿ
%9F
A 
%A0
¡
%A1
¢
%A2
£
%A3
 
%A4
¥
%A5
|
%A6
§
%A7
¨
%A8
©
%A9
ª
%AA
«
%AB
¬
%AC
¯
%AD
®
%AE
¯
%AF
B°
%B0
±
%B1
²
%B2
³
%B3
´
%B4
µ
%B5

%B6
·
%B7
¸
%B8
¹
%B9
º
%BA
»
%BB
¼
%BC
½
%BD
¾
%BE
¿
%BF
CÀ
%C0
Á
%C1
Â
%C2
Ã
%C3
Ä
%C4
Å
%C5
Æ
%C6
Ç
%C7
È
%C8
É
%C9
Ê
%CA
Ë
%CB
Ì
%CC
Í
%CD
Î
%CE
Ï
%CF
DÐ
%D0
Ñ
%D1
Ò
%D2
Ó
%D3
Ô
%D4
Õ
%D5
Ö
%D6
 
%D7
Ø
%D8
Ù
%D9
Ú
%DA
Û
%DB
Ü
%DC
Ý
%DD
Þ
%DE
ß
%DF
Eà
%E0
á
%E1
â
%E2
ã
%E3
ä
%E4
å
%E5
æ
%E6
ç
%E7
è
%E8
é
%E9
ê
%EA
ë
%EB
ì
%EC
í
%ED
î
%EE
ï
%EF
Fð
%F0
ñ
%F1
ò
%F2
ó
%F3
ô
%F4
õ
%F5
ö
%F6
÷
%F7
ø
%F8
ù
%F9
ú
%FA
û
%FB
ü
%FC
ý
%FD
þ
%FE
ÿ
%FF

Le caractère "TAB", par exemple, est, dans cette table, à l'intersection de la ligne 0 et de la colonne 9. Son code ASCII est donc 09.

Ceci est, bien entendu, fonctionnel sur toute la table ASCII. Par exemple "Papa" pourrait donc s'écrire "50 61 70 61", mais il manque quelque chose :

Pour distinguer 50 61 70 61 d'un bête nombre, il a été convenu d'un code dit d'"échappement" qui a été choisi pour être le caractère "%" d'où le nom d'"échappement %". Lorsque ce code est rencontré, les 2 caractères qui le suivent sont le code ASCII d'un caractère. (Conséquence syntaxique : le caractère % est "interdit" en écriture directe et ne peut s'écrire que %25).

Papa pourrait donc s'écrire %50 %61 %70 %61, mais il manque encore quelque chose que la règle syntaxique impose :

Le caractère "espace" n'est pas admis. Il doit être remplacé, lorsqu'il est requis, par %20 (le caractère "espace" dans la case ligne 2 colonne 0). S'il n'est pas requis, il ne doit pas y en avoir.

Donc, finalement, Papa s'écrit %50%61%70%61. Cette manière d'écrire les URLs est donc parfaitement légitime bien que totalement "exotique" et consiste à remplacer chaque caractère (d'une URL, d'une chaîne de caractères quelconque...) par son équivalent dans un autre alphabet appelé "échappement %". Les sites crapuleux et les spammeurs sont les grands utilisateurs de cette méthode de camouflage. Nous pouvons d'ailleurs leur rendre la monnaie de leur pièce et crypter nos adresses e-mail pour éviter leurs robots en utilisant les mêmes outils qu'eux !

Windows, Internet et le codage de certains caractères

Le partage d'informations, sous forme de documents numériques, pose un problème né de la mondialisation des échanges grace (ou à cause) de l'émergence de l'Internet. Il faut faire en sorte que le contenu d'un document numérique puisse être reconnu de manière identique par les systèmes d'exploitation et les applications utilisant des alphabets (des jeux de caractères) totalement différents (oriental, occidental etc. ...).

Des codes ont été mis au point pour s'assurer qu'un symbole, dans un système, s'affiche et s'imprime identiquement dans un autre système. Ces codes se sont compléxifiés et étendus avec le temps afin de reconnaître de plus en plus de caractères spéciaux propres à des langues de plus en plus nombreuses. Ces codes normalisés ont commencés avec ASCII, EBCDIC, ISO-2022... pour aboutir à Unicode). Evidemment Microsoft a tenté d'imposer un code exotique qui est invalide et ne sera jamais normalisé.

Principaux codes utilisés sur l'Internet.

  • Unicode (norme de fait - sur-ensemble de ISO/CEI 10646 à laquelle elle correspond caractère par caractère) :
    C'est le standard de codage des caractères sur lequel reposent tous les espoirs actuels. Conçu par le consortium Unicode, Unicode est une norme informatique qui vise à donner à tout caractère de n'importe quel système d'écriture de langue un nom et un identifiant numérique, et ce de manière unifiée, quelle que soit la plate-forme informatique ou le logiciel . Il fournit donc une méthode universelle de codage. La première publication sur Unicode remonte à 1991. Il est au cœur de tous les systèmes modernes (Windows, Mac OS, UNIX…), mais n'est pas forcément reconnu/utilisé par toutes les applications. De nouveaux caractères s'y ajoutent encore, par exemple avec le traitement numérique de systèmes (langues et signes) disparus.

  • UTF-8 (RFC 3629) :
    UTF-8 est un codage dérivé de Unicode (UTF = Unicode Transformation Format). Au lieu d'encoder les caractères sur 2 octets, ils le sont de manière variable sur 1 à 4 octets. C'est le codage de base de XML et c'est le plus courant aujourd'hui.

  • ISO-8859-1 (Latin-1; ISO/CEI 8859-1; ISO/IEC 8859-1) :
    Egalement connue sous le nom de Latin-1. Une page HTML déclare utiliser cet encodage avec la balise :
    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
    Cette norme code 191 des caractères de l'alphabet latin (plus simplement, cette norme s'est trop rapidement employée à ajouter des caractères accentués au code US-ASCII (et passe complètement à côté des caractères français œ, Œ et Ÿ (et de plusieurs autres en allemand, estonien et finois) qui n'ont pas été inclus car l'employeur de l'un des rédacteurs de la norme, un grand fabricant d'imprimantes, n'avait pas inclus ces caractères dans ses imprimantes). En réalité, ce n'est que le premier de 15 codages (de ISO-8859-1 à ISO-8859-15), chacun englobant tout (ou, parfois, partie) des caractères utilisés dans une région ou une forme de langue : Europe de l'Ouest, du Nord, du Sud, et Centrale, Arabe, Grec, Hébreu, Celte, Thaï.

    Notoirement créé rapidement, ISO-8859-1 est très diffusé mais pas idéal. Il faut cependant compter avec lui car il s'agit du codage standard d'UNIX et de nombreux logiciels (dont certains navigateurs et logiciels de courrier), et Unicode en est une extension.
    Les normes ISO-8859-xx ne sont pour autant pas complètes (notamment en ce qui concerne l'extrême-orient), et il est préférable de nos jours de se référer à Unicode ou UTF-8.

    La maintenance du code iso-8859-1 est abandonnée depuis juin 2004 au profit de Unicode (et UTF-8 / UTF-16).


Caractères Microsoft Windows illégaux et leurs équivalents normalisés

codages
invalides
utilisés par
Windows
Entités
« caractère »
normalisées

Pas reconnues
par Netscape 4
Références
numériques normalisées
Résultat
affiché
Commentaire
&#128;&euro;&#8364;Symbole monétaire de l'Euro (1)
&#129;    
&#130;&sbquo;&#8218;Apostrophe anglaise basse (1) (2) (3)
&#131;&fnof;&#402;ƒFlorin, forte musical (1) (2)
&#132;&bdquo;&#8222;Guillemet anglais bas (1) (2)
&#133;&hellip;&#8230;Points de suspension (n'est pas une suite de 3 points mais un symbole unique) (1)
&#134;&dagger;&#8224;Obèle, dague, croix (appel de notes de bas de page) (1)
&#135;&Dagger;&#8225;Double obèle, double croix (1)
&#136;&circ;&#710;ˆAccent circonflexe (1)
&#137;&permil;&#8240;Pour mille (1)
&#138;&Scaron;&#352;ŠS majuscule avec hatchek (háček, caron, antiflexe - accent circonflexe inversé) - langue tchèque (1) (ISO-8859-2 Unicode)
&#139;&lsaquo;&#8249;Guillemet simple allemand et suisse, parenthèse angulaire ouvrante (1) (2) (3)
&#140;&OElig;&#338;ŒLigature o-e majuscule (1) (2) (ignorée des normes ISO Latin-1 (ISO 8859-1) et Unicode (ISO 10646))
&#141;    
&#142; &#381;ŽZ majuscule avec hatchek (háček, caron, antiflexe - accent circonflexe inversé) - langue tchèque (1) (ISO-8859-2 Unicode)
&#143;    
&#144;    
&#145;&lsquo;&#8216;Guillemet anglais simple ouvrant (1) (2) (3)
&#146;&rsquo;&#8217;Guillemet anglais simple fermant (1) (2) (3)
&#147;&ldquo;&#8220;Guillemets anglais doubles ouvrants (1) (2) (3)
&#148;&rdquo;&#8221;Guillemets anglais doubles fermants (1) (2) (3)
&#149;&bull;&#8226;Boulet (type "listes à puces") (1) (2)
&#150;&ndash;&#8211;Tiret demi-cadratin ou tiret moyen « – » (caractère Unicode U+2013, LaTeX --, clavier Mac : Alt + Maj + -)
(Espaces typographiques). Voir The Trouble With EM 'n EN
&#151;&mdash;&#8212;Tiret cadratin ou tiret long « — » (caractère Unicode U+2014, LaTeX ---, clavier Mac : Alt + -)
(Espaces typographiques). Voir The Trouble With EM 'n EN
&#152;&tilde;&#732;˜Tilde : signe diacritique utilisé en Castillan (ñ), en Portugais (ã, õ), en Guarani (ã, ñ, õ) et en Breton (añ). (1)
&#153;&trade;&#8482;TM - Trade Mark (Marque Dépossée)
&#154;&scaron;&#353;šs minuscule avec hatchek (háček, caron, antiflexe - accent circonflexe inversé) - langue tchèque (1) (ISO-8859-2 Unicode)
&#155;&rsaquo;&#8250;guillemet simple allemand et suisse, parenthhse angulaire fermante (1) (2) (3)
&#156;&oelig;&#339;œLigature o-e minscule (1) (2) (ignorée des normes ISO Latin-1 (ISO 8859-1) et Unicode (ISO 10646))
&#157;    
&#158; &#382;žz minuscule avec hatchek (háček, caron, antiflexe - accent circonflexe inversé) - langue tchèque (1) (ISO-8859-2 Unicode)
&#159;&Yuml;&#376;ŸY majuscule avec trema (dans quelques noms propres. (Ignorée des normes ISO Latin-1 (ISO 8859-1) et Unicode (ISO 10646))



  • Echappement