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
|
||||
var facilPath = 'c:/Websites/Facilitor/csu_prep/cust/';
|
||||
var facilPath = 'd:/apps/Facilitor/FPlace5i/cust/';
|
||||
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
|
||||
quoted_sql: function (tekst, maxlen) // maxlen is optioneel
|
||||
{
|
||||
@@ -13,11 +11,11 @@ safe = { // extracted from shared.inc
|
||||
maxlen = 4000;
|
||||
tekst = tekst.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F]+/g, "?");
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
function CreateFullPath(sPath)
|
||||
{
|
||||
var fso = new ActiveXObject("Scripting.FileSystemObject");
|
||||
@@ -180,17 +177,30 @@ function OnAcceptMessage(oClient, oMessage)
|
||||
}
|
||||
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);
|
||||
for (i=0; i < oMessage.Attachments.Count; i++)
|
||||
{
|
||||
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.");
|
||||
}
|
||||
else
|
||||
{
|
||||
EventLog.write(filenm + ' bijlage (' + oMessage.Attachments.Item(i).Size + ' bytes) naar ' + path);
|
||||
filePath = path + filenm;
|
||||
oMessage.Attachments.Item(i).SaveAs(filePath);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user