Je suis tombé sur SVGCaptcha et j'ai tout de suite compris que c'était une mauvaise idée.
J'aimerais que vous montriez à quel point l'idée est mauvaise en extrayant le code de validation des images SVG que le code produit.
Un exemple d'image ressemble à ceci:
Voici la source de l'exemple d'image:
<?xml version="1.0" encoding="utf-8"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
width="200" height="40"
> <rect x="0" y="0" width="200" height="40"
style="stroke: none; fill: none;" >
</rect> <text style="fill: #4d9363;" x="5" y="34" font-size="20" transform="translate(5, 34) rotate(-17) translate(-5, -34)">8</text>
<text style="fill: #be8b33;" x="125" y="29" font-size="21" transform="translate(125, 29) rotate(17) translate(-125, -29)">f</text>
<text style="fill: #d561ff;" x="45" y="35" font-size="20" transform="translate(45, 35) rotate(-2) translate(-45, -35)">4</text>
<text style="fill: #3de754;" x="85" y="31" font-size="21" transform="translate(85, 31) rotate(-9) translate(-85, -31)">8</text>
<text style="fill: #5ed4bf;" x="25" y="33" font-size="22" transform="translate(25, 33) rotate(16) translate(-25, -33)">u</text>
<text style="fill: #894aee;" x="105" y="28" font-size="25" transform="translate(105, 28) rotate(9) translate(-105, -28)">1</text>
<text style="fill: #e4c437;" x="65" y="32" font-size="20" transform="translate(65, 32) rotate(17) translate(-65, -32)">x</text>
</svg>
L'entrée est l'image SVG, qui est un format textuel.
La seule restriction réelle est que votre code doit générer les valeurs dans le bon ordre .
Les <text>
éléments d' entrée sont dans un ordre aléatoire, vous devez donc faire attention à l' x
attribut dans la <text>
balise
Score est le nombre d'octets dans le code
Étant donné que le code effectue actuellement deux transformations qui s’annulent, vous pouvez les ignorer, mais si vous les prenez en considération, continuez et utilisez une réduction de 30% de votre score.