From: Felix Dörre Date: Tue, 3 Feb 2015 21:59:37 +0000 (+0100) Subject: ADD: Verify, only act on POST (+CSRF) X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=182e0bf4bc672b3e92cbcee950383a2ad8fef7fb ADD: Verify, only act on POST (+CSRF) --- diff --git a/src/org/cacert/gigi/output/template/Form.java b/src/org/cacert/gigi/output/template/Form.java index f469c21c..f330fe86 100644 --- a/src/org/cacert/gigi/output/template/Form.java +++ b/src/org/cacert/gigi/output/template/Form.java @@ -17,13 +17,19 @@ public abstract class Form implements Outputable { public static final String CSRF_FIELD = "csrf"; - private String csrf; + private final String csrf; + + private final String action; public Form(HttpServletRequest hsr) { + this(hsr, null); + } + + public Form(HttpServletRequest hsr, String action) { csrf = RandomToken.generateToken(32); + this.action = action; HttpSession hs = hsr.getSession(); hs.setAttribute("form/" + getClass().getName() + "/" + csrf, this); - } public abstract boolean submit(PrintWriter out, HttpServletRequest req) throws GigiApiException; @@ -34,7 +40,11 @@ public abstract class Form implements Outputable { @Override public void output(PrintWriter out, Language l, Map vars) { - out.println("
"); + if (action == null) { + out.println(""); + } else { + out.println(""); + } failed = false; outputContent(out, l, vars); out.print("