FSN#24372 Bijlagen met 'Foute' extensies via whitelist ipv. blacklist
svn path=/Website/trunk/; revision=18562
This commit is contained in:
@@ -1,9 +1,7 @@
|
|||||||
// Hieronder worden XXXX/XXXX/UDL's gezocht
|
// Hieronder worden XXXX/XXXX/UDL's gezocht
|
||||||
var facilPath = 'c:/Websites/Facilitor/csu_prep/cust/';
|
var facilPath = 'd:/apps/Facilitor/FPlace5i/cust/';
|
||||||
var cust = 'XXXX';
|
var cust = 'XXXX';
|
||||||
|
|
||||||
flexForbiddenExt = ".*\\.(asp|aspx|inc|bat|exe|com|scr|dll|hta|js|vbs|wsh|lnk|udl)$"; // Regexp forbidden extensions
|
|
||||||
|
|
||||||
safe = { // extracted from shared.inc
|
safe = { // extracted from shared.inc
|
||||||
quoted_sql: function (tekst, maxlen) // maxlen is optioneel
|
quoted_sql: function (tekst, maxlen) // maxlen is optioneel
|
||||||
{
|
{
|
||||||
@@ -13,11 +11,11 @@ safe = { // extracted from shared.inc
|
|||||||
maxlen = 4000;
|
maxlen = 4000;
|
||||||
tekst = tekst.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F]+/g, "?");
|
tekst = tekst.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F]+/g, "?");
|
||||||
tekst = tekst.substr(0, maxlen);
|
tekst = tekst.substr(0, maxlen);
|
||||||
return "'" + tekst.replace(/\'/g,"''") + "'";
|
return "'" + tekst.replace(/\'/g,"''") + "'"; // " syntax highlight correctie
|
||||||
},
|
},
|
||||||
filename: function (naam) // geen 'lage' karakters een geen (back)slashes, *,%,<,>
|
filename: function (naam) // geen 'lage' karakters en geen (back)slashes, *,%,<,>
|
||||||
{
|
{
|
||||||
return naam.replace(/[\x00-\x1F|\/|\\|\*|\%\<\>]+/g, "_");
|
return naam.replace(/[\x00-\x1F|\/|\\|\*|\%\<\>\"\:\?\|]+/g, "_"); // " syntax highlight correctie
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -35,7 +33,6 @@ function stripHtml(html)
|
|||||||
return html;
|
return html;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function CreateFullPath(sPath)
|
function CreateFullPath(sPath)
|
||||||
{
|
{
|
||||||
var fso = new ActiveXObject("Scripting.FileSystemObject");
|
var fso = new ActiveXObject("Scripting.FileSystemObject");
|
||||||
@@ -180,17 +177,30 @@ function OnAcceptMessage(oClient, oMessage)
|
|||||||
}
|
}
|
||||||
oRs1.Close();
|
oRs1.Close();
|
||||||
|
|
||||||
EventLog.write(oMessage.Attachments.Count+' bijlage(s) naar ' + path);
|
// Veilige extensies
|
||||||
|
sql = "SELECT COALESCE(fac_setting_pvalue, fac_setting_default)"
|
||||||
|
+ " FROM fac_setting"
|
||||||
|
+ " WHERE fac_setting_name = 'flexallowedext'";
|
||||||
|
var oRs1 = Oracle.Execute(sql);
|
||||||
|
var flexAllowedExt = oRs1("fac_result_waarde").Value;
|
||||||
|
oRs1.Close();
|
||||||
|
|
||||||
CreateFullPath(path);
|
CreateFullPath(path);
|
||||||
for (i=0; i < oMessage.Attachments.Count; i++)
|
for (i=0; i < oMessage.Attachments.Count; i++)
|
||||||
{
|
{
|
||||||
filenm = "" + safe.filename(oMessage.Attachments.Item(i).fileName);
|
filenm = "" + safe.filename(oMessage.Attachments.Item(i).fileName);
|
||||||
if (filenm.match(flexForbiddenExt))
|
if (filenm == 'tmpl_logo.gif')
|
||||||
|
{ // Waarschijnlijk een FACILITOR bon gereply'd
|
||||||
|
EventLog.write("Bijlage " + filenm + " genegeerd.");
|
||||||
|
}
|
||||||
|
else if (!new RegExp(flexAllowedExt, "ig").test(filenm))
|
||||||
{
|
{
|
||||||
|
// TODO: Misschien ook terugkoppelen aan zender?
|
||||||
EventLog.write("Onveilig bestand: " + filenm + " is niet opgeslagen.");
|
EventLog.write("Onveilig bestand: " + filenm + " is niet opgeslagen.");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
EventLog.write(filenm + ' bijlage (' + oMessage.Attachments.Item(i).Size + ' bytes) naar ' + path);
|
||||||
filePath = path + filenm;
|
filePath = path + filenm;
|
||||||
oMessage.Attachments.Item(i).SaveAs(filePath);
|
oMessage.Attachments.Item(i).SaveAs(filePath);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user