LOGC#45667 consistente rng met oCrypto.hex_random()

svn path=/Website/trunk/; revision=37822
This commit is contained in:
2018-05-02 10:14:42 +00:00
parent fd9d8b9811
commit a7bb723e70

View File

@@ -38,6 +38,7 @@ function sendMail( p_mailfrom
var objFso = new ActiveXObject("Scripting.FileSystemObject");
var objStrm = new ActiveXObject("ADODB.Stream");
var objMail = new ActiveXObject("CDO.Message");
var oCrypto = new ActiveXObject("SLNKDWF.Crypto");
// De onderstaande configuratie is ook handig voor het testen op een lokale pc.
// Dan heb je geen lokale SMTP service nodig
@@ -127,10 +128,10 @@ function sendMail( p_mailfrom
// src="cid:qrc.png"
// Ondertussen is het al HTML dus we kunnen geen XML-query doen
// Daarom gewoon textueel opzoeken
var rnd_cid;
var rnd_cid, cidname;
var startPos = p_bodyhtml.indexOf("qrc=") + 4;
var quote = p_bodyhtml.substr(startPos, 1); // enkele of dubbele quote
var eindPos = p_bodyhtml.indexOf(quote, startPos + 2);
var quote = p_bodyhtml.substr(startPos, 1); // enkele of dubbele quote
var eindPos = p_bodyhtml.indexOf(quote, startPos + 2);
if (startPos > 3 && eindPos > startPos)
{
var qrc = p_bodyhtml.substring(startPos + 1, eindPos);
@@ -142,23 +143,21 @@ function sendMail( p_mailfrom
oStream.Open;
oStream.Type = 1; // binary
oStream.Write(xc.GetAsPNG());
var oCrypto = new ActiveXObject("SLNKDWF.Crypto"); // Maak random naam
var sha1 = oCrypto.hex_sha1(qrc);
var tempfile = custabspath + "/../../temp/puo_qr_" + sha1 + ".png";
oStream.SaveToFile(tempfile, 2); // overwrite
rnd_cid = (Math.random().toString(36)+'00000000000000000').slice(2, 12);
var cidname = "qrc" + rnd_cid + ".png";
var newbody = p_bodyhtml.substr(0, startPos - 4) + "src=\"cid:" + cidname + "\"" + p_bodyhtml.substr(eindPos + 1);
p_bodyhtml = newbody;
rnd_cid = oCrypto.hex_random(10);
cidname = "qrc" + rnd_cid + ".png";
p_bodyhtml = p_bodyhtml.substr(0, startPos - 4) + "src=\"cid:" + cidname + "\"" + p_bodyhtml.substr(eindPos + 1);
objMail.addRelatedBodyPart(tempfile, cidname, 0);
if (S("puo_loglevel") < 4)
objFso.DeleteFile(tempfile);
}
// Nu frc-codering opzoeken <img frc="M=SML:K=34417"/>
var startPos = p_bodyhtml.indexOf("frc=") + 4;
var quote = p_bodyhtml.substr(startPos, 1); // enkele of dubbele quote
var eindPos = p_bodyhtml.indexOf(quote, startPos + 2);
startPos = p_bodyhtml.indexOf("frc=") + 4;
quote = p_bodyhtml.substr(startPos, 1); // enkele of dubbele quote
eindPos = p_bodyhtml.indexOf(quote, startPos + 2);
while (startPos > 4 && eindPos > startPos)
{
var flexcode = p_bodyhtml.substring(startPos + 1, eindPos);
@@ -203,9 +202,8 @@ function sendMail( p_mailfrom
Log2File(1, props.flexlog);
if (!props.files || !props.files.length)
{ // Geen bestanden gevonden? Dan hele img-tag gewoon er uit halen
var eindPos = p_bodyhtml.indexOf(">", startPos + 2);
var newbody = p_bodyhtml.substr(0, startPos - 9) + p_bodyhtml.substr(eindPos + 1);
p_bodyhtml = newbody;
eindPos = p_bodyhtml.indexOf(">", startPos + 2);
p_bodyhtml = p_bodyhtml.substr(0, startPos - 9) + p_bodyhtml.substr(eindPos + 1);
}
else
{
@@ -214,10 +212,9 @@ function sendMail( p_mailfrom
var file = filedata.resized;
else
var file = props.AttachPath + props.files[0].name;
rnd_cid = (Math.random().toString(36)+'00000000000000000').slice(2, 12);
var cidname = "flex" + rnd_cid + ".png";
var newbody = p_bodyhtml.substr(0, startPos - 4) + "src=\"cid:" + cidname + "\"" + p_bodyhtml.substr(eindPos + 1);
p_bodyhtml = newbody;
rnd_cid = oCrypto.hex_random(10);
cidname = "flex" + rnd_cid + ".png";
p_bodyhtml = p_bodyhtml.substr(0, startPos - 4) + "src=\"cid:" + cidname + "\"" + p_bodyhtml.substr(eindPos + 1);
try {
objMail.addRelatedBodyPart(file, cidname, 0);
}
@@ -229,9 +226,9 @@ function sendMail( p_mailfrom
objFso.DeleteFile(filedata.tempdelete);
}
// Volgende zoeken
var startPos = p_bodyhtml.indexOf("frc=", eindPos) + 4;
var quote = p_bodyhtml.substr(startPos, 1);
var eindPos = p_bodyhtml.indexOf(quote, startPos + 2);
startPos = p_bodyhtml.indexOf("frc=", eindPos) + 4;
quote = p_bodyhtml.substr(startPos, 1);
eindPos = p_bodyhtml.indexOf(quote, startPos + 2);
}
// Eventueel een ics er aan toevoegen
@@ -243,7 +240,6 @@ function sendMail( p_mailfrom
oStream.Type = 2; // tekst
oStream.Charset = 'Windows-1252'; // Anders is de ics 'not supported'
oStream.WriteText(params.attachics);
var oCrypto = new ActiveXObject("SLNKDWF.Crypto"); // Maak random naam
// var sha1 = oCrypto.hex_sha1(params.attachics); werkt niet goed als RESMAI twee keer wordt gestuurd, dan heb je overlap
var sha1 = oCrypto.hex_random(16);
var tempfile = custabspath + "/../../temp/puo_ics_" + sha1 + ".ics";
@@ -263,8 +259,8 @@ function sendMail( p_mailfrom
Log2File(2, "Before bodyHTML");
var startPos = p_bodyhtml.indexOf("cid:") + 4;
var eindPos = p_bodyhtml.indexOf(".gif", startPos) + 4;
startPos = p_bodyhtml.indexOf("cid:") + 4;
eindPos = p_bodyhtml.indexOf(".gif", startPos) + 4;
if (startPos >= 4 && eindPos > startPos && eindPos - startPos < 20)
{
var logoFileName = p_bodyhtml.substring(startPos, eindPos);
@@ -273,10 +269,9 @@ function sendMail( p_mailfrom
if (objFso.FileExists(logoPathName))
{
Log2File(2, logoFileName);
rnd_cid = (Math.random().toString(36)+'00000000000000000').slice(2, 12);
var cidname = "logo" + rnd_cid + ".gif";
var newbody = p_bodyhtml.substr(0, startPos - 4) + "cid:" + cidname + p_bodyhtml.substr(eindPos);
p_bodyhtml = newbody;
rnd_cid = oCrypto.hex_random(10);
cidname = "logo" + rnd_cid + ".gif";
p_bodyhtml = p_bodyhtml.substr(0, startPos - 4) + "cid:" + cidname + p_bodyhtml.substr(eindPos);
try {
objMail.addRelatedBodyPart(logoPathName, cidname, 0);