Skip to content

Commit 796d90f

Browse files
author
jbenguira
committed
fixed security issue by allowing only urls starting with http:// or https://
1 parent f29cddb commit 796d90f

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

API/REST/Screenshot.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@ exports.handler = async (event, context, callback) => {
3737
url = decodeURIComponent(url);
3838
}
3939

40+
if ( !url.toLowerCase().startsWith("http://") && !url.toLowerCase().startsWith("https://") ){
41+
callback(null, {
42+
status: 400,
43+
content: "Invalid URL, must start with http:// or https://"
44+
});
45+
return;
46+
}
47+
4048
var isFullPage = false; if ( event.queryStringParameters.isFullPage == "true" ) { isFullPage = true; }
4149
var resX = 1280; if ( event.queryStringParameters.resX != null ) { resX = event.queryStringParameters.resX; }
4250
var resY = 900; if ( event.queryStringParameters.resY != null ) { resY = event.queryStringParameters.resY; }

API/WS/Screenshot.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,21 @@ exports.message = async (event, context, callback) => {
6161
url = decodeURIComponent(url);
6262
}
6363

64+
if ( !url.toLowerCase().startsWith("http://") && !url.toLowerCase().startsWith("https://") ){
65+
resp = {
66+
"cmd": "responseScreenshot",
67+
"data": "",
68+
"isEmptyResult": true,
69+
"execTime": "0ms",
70+
"totalScreenshots": sharedmem.getInteger("nbScreenshots"),
71+
"originalTS": obj.originalTS,
72+
"outFormat": obj.outFormat,
73+
"Content-Type": "application/json"
74+
};
75+
callback(null, JSON.stringify(resp));
76+
return;
77+
}
78+
6479
//var screenshotResult = await tools.screnshotForUrl(url, true);
6580
var screenshotResult = null;
6681
try{

0 commit comments

Comments
 (0)