aboutsummaryrefslogtreecommitdiff
path: root/pdf-as-web/src/main/java/at/gv
diff options
context:
space:
mode:
authorJakob Heher <jakob.heher@iaik.tugraz.at>2026-04-16 16:14:46 +0200
committerGitHub <noreply@github.com>2026-04-16 16:14:46 +0200
commitf02ecf0235cb17c90e9d1d8c155bd64e729fa46e (patch)
treea7dcd8424a1ecc4683c5fb3f01d73d062a447905 /pdf-as-web/src/main/java/at/gv
parent77dd3fcc4d85088b15ab859c4438521d9cd6ed10 (diff)
downloadpdf-as-4-f02ecf0235cb17c90e9d1d8c155bd64e729fa46e.tar.gz
pdf-as-4-f02ecf0235cb17c90e9d1d8c155bd64e729fa46e.tar.bz2
pdf-as-4-f02ecf0235cb17c90e9d1d8c155bd64e729fa46e.zip
fix some semgrep reported issues (#83)
Diffstat (limited to 'pdf-as-web/src/main/java/at/gv')
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java6
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureCertificateData.java5
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureData.java5
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SLDataURLServlet.java4
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java7
-rw-r--r--pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VisBlockServlet.java1
6 files changed, 17 insertions, 11 deletions
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java
index 6359eccb..0a806369 100644
--- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/ExternSignServlet.java
@@ -63,6 +63,7 @@ import at.gv.egiz.pdfas.web.stats.StatisticFrontend;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletDiskFileUpload;
import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload;
+import org.apache.commons.io.FilenameUtils;
/**
* Servlet implementation class Sign
@@ -227,9 +228,10 @@ public class ExternSignServlet extends HttpServlet {
if (item.getFieldName().equals(UPLOAD_PDF_DATA)) {
filecontent = item.getInputStream().readAllBytes();
try {
- File f = new File(item.getName());
+ val filename = FilenameUtils.getName(item.getName());
+ File f = new File(filename);
String name = f.getName();
- log.debug("Got upload: " + item.getName());
+ log.debug("Got upload: {}", filename);
if (!(name.endsWith(".pdf") || name.endsWith(".PDF"))) {
name += ".pdf";
}
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureCertificateData.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureCertificateData.java
index 869dfdf4..bf3f3f85 100644
--- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureCertificateData.java
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureCertificateData.java
@@ -95,15 +95,16 @@ public class PDFSignatureCertificateData extends HttpServlet {
"Content-Disposition",
"inline;filename=cert_" + id + ".cer");
response.setContentType("application/pkix-cert");
+ response.setHeader("X-Content-Type-Options", "nosniff");
OutputStream os = response.getOutputStream();
os.write(res.getSignerCertificate().getEncoded());
os.close();
} else {
- logger.warn("Verification CERT not found! for id " + request.getParameter(SIGN_ID) + " in session " + request.getSession().getId());
+ logger.warn("Verification CERT not found! for id {} in session {}", request.getParameter(SIGN_ID), request.getSession().getId());
response.sendError(HttpServletResponse.SC_NOT_FOUND);
}
} catch (NumberFormatException e) {
- logger.warn("Verification CERT not found! for id " + request.getParameter(SIGN_ID) + " in session " + request.getSession().getId());
+ logger.warn("Verification CERT not found! for id {} in session {}", request.getParameter(SIGN_ID), request.getSession().getId());
response.sendError(HttpServletResponse.SC_NOT_FOUND);
} catch (PdfAsException e) {
logger.warn("Verification CERT not found:", e);
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureData.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureData.java
index 3d96784b..14f13f05 100644
--- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureData.java
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/PDFSignatureData.java
@@ -94,15 +94,16 @@ public class PDFSignatureData extends HttpServlet {
"Content-Disposition",
"inline;filename=signed_data_" + id + ".pdf");
response.setContentType("application/pdf");
+ response.setHeader("X-Content-Type-Options", "nosniff");
OutputStream os = response.getOutputStream();
os.write(res.getSignatureData().getBaseData());
os.close();
} else {
- logger.warn("Verification DATA not found! for id " + request.getParameter(SIGN_ID) + " in session " + request.getSession().getId());
+ logger.warn("Verification DATA not found! for id {} in session {}", request.getParameter(SIGN_ID), request.getSession().getId());
response.sendError(HttpServletResponse.SC_NOT_FOUND);
}
} catch (NumberFormatException e) {
- logger.warn("Verification DATA not found! for id " + request.getParameter(SIGN_ID) + " in session " + request.getSession().getId());
+ logger.warn("Verification DATA not found! for id {} in session {}", request.getParameter(SIGN_ID), request.getSession().getId());
response.sendError(HttpServletResponse.SC_NOT_FOUND);
} catch (PdfAsException e) {
logger.warn("Verification DATA not found:", e);
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SLDataURLServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SLDataURLServlet.java
index d0c331e6..7df32340 100644
--- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SLDataURLServlet.java
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/SLDataURLServlet.java
@@ -93,7 +93,7 @@ public class SLDataURLServlet extends HttpServlet {
}
- logger.trace("Received SL2.0 command: " + sl20Result);
+ logger.trace("Received SL2.0 command: {}", sl20Result);
//parse SL2.0 command/result into JSON
try {
@@ -102,7 +102,7 @@ public class SLDataURLServlet extends HttpServlet {
} catch (JsonSyntaxException e) {
logger.warn("SL2.0 command or result is NOT valid JSON.", e);
- logger.debug("SL2.0 msg: " + sl20Result);
+ logger.debug("SL2.0 msg: {}", sl20Result);
throw new SL20Exception("sl20.02", e);
}
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java
index a71a13f4..4a80e25d 100644
--- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VerifyServlet.java
@@ -38,6 +38,7 @@ import org.apache.commons.fileupload2.core.FileItem;
import org.apache.commons.fileupload2.core.DiskFileItemFactory;
import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletDiskFileUpload;
import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload;
+import org.apache.commons.io.FilenameUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -209,10 +210,10 @@ public class VerifyServlet extends HttpServlet {
if (item.getFieldName().equals(UPLOAD_PDF_DATA)) {
filecontent = item.getInputStream().readAllBytes();
try {
- File f = new File(item.getName());
+ val filename = FilenameUtils.getName(item.getName());
+ File f = new File(filename);
String name = f.getName();
- logger.debug("Got upload: "
- + item.getName());
+ logger.debug("Got upload: {}", filename);
if (!(name.endsWith(".pdf") || name
.endsWith(".PDF"))) {
name += ".pdf";
diff --git a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VisBlockServlet.java b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VisBlockServlet.java
index d67a88c1..eda6eef0 100644
--- a/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VisBlockServlet.java
+++ b/pdf-as-web/src/main/java/at/gv/egiz/pdfas/web/servlets/VisBlockServlet.java
@@ -72,6 +72,7 @@ public class VisBlockServlet extends HttpServlet {
response.setHeader("Content-Disposition", "inline;filename="
+ profile + "_" + resolution + ".png");
response.setContentType("image/png");
+ response.setHeader("X-Content-Type-Options", "nosniff");
OutputStream os = response.getOutputStream();
os.write(imageData);
os.close();