qr Generator server side opslaan
ik maak gebruik van larsjung.de/jquery-qrcode om een mooie qrCode te genereren.
Nou wil ik deze graag opslaan op de server, nadat ik een bepaalde actie heb uitgevoerd (client-side)
Het genereren gaat prima.
Als ik de image src handmatig ophaal, is dit een string van 64.505 karakters.
De QR code is 500x500 omdat ik deze op labels en bordjes enz. wil afdrukken.
Als ik nou het volgende uitvoer, krijg ik maar een string van 152 karakters.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
var img = document.getElementById("qrCode");
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
//var dataURL = canvas.toDataURL("image/png");
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
//var dataURL = canvas.toDataURL("image/png");
Iemand enig idee ?
Daarbij moet je waarschijnlijk ook met het volgende rekening houden: een afbeelding bestaat uit binaire data, dit is geen tekst of een string of wat dan ook. Ook is het zaak dat je deze data omzet in een vorm zodat je deze veilig kunt gebruiken in een bepaalde context, maar hier zorgt toDataURL in dit geval wel voor waarschijnlijk - bedoelde je de lengte van de output daarvan?
toDataURL encodeert ook zaken geloof ik, dit is dan (uiteraard?) van een andere lengte dan de rauwe binaire data lijkt mij.
Het is base64 encoded.
Wel moet ik de
Ik heb zelfs een delay gemaakt, en nog altijd is de lengte veel korter dan daadwerkelijk in de src staat.
Maar ik heb ondertussen besloten het sowieso maar gewoon serverside te doen, want heb t nog veel vaker nodig :)
Gewoon met de googleapi, naderhand kleurtje veranderen en logo er bovenop te knallen.
Want kreeg al servererrors van mn WAF mbt XSS vulnerability’s.
Het is natuurlijk wel een heel gevoelige manier..
Gewijzigd op 19/04/2018 18:49:46 door Dennis WhoCares
Gewijzigd op 19/04/2018 19:35:37 door Thomas van den Heuvel
D'r zijn trouwens genoeg bibliotheekjes om die dingen gewoon helemaal lokaal te genereren. Heb je ook die afhankelijkheid naar Google niet meer nodig (minder storingsgevoelig, en veul sneller).
Rob Doemaarwat op 19/04/2018 21:10:06:
Ik vind server-side her-genereren wel een betere oplossing. Anders moet je altijd weer controleren wat je nou precies van de client hebt gekregen (een echte QR-png, of gewoon regelrechte bagger?).
D'r zijn trouwens genoeg bibliotheekjes om die dingen gewoon helemaal lokaal te genereren. Heb je ook die afhankelijkheid naar Google niet meer nodig (minder storingsgevoelig, en veul sneller).
D'r zijn trouwens genoeg bibliotheekjes om die dingen gewoon helemaal lokaal te genereren. Heb je ook die afhankelijkheid naar Google niet meer nodig (minder storingsgevoelig, en veul sneller).
Hi Rob,
ik ben ondertussen er ook al klaar mee ;P
Ik was vanmiddag nog meer aan het klooien, en toen zag ik dus de XSS beveiliging inslaan, en toen dacht ik.. Weet je.. laat maar gaan.
Ik kwam de google api tegen, en eigenlijk werkt dit ook wel erg snel!