Secrets nicht öffentlich

  • Beitrags-Autor:
  • Beitrags-Kategorie:Java / Webdesign

Java im Backend

Umgebungsvariable speichert Geheimnis

// in CMD prüfen: set | findstr ABC
String abc = System.getenv("ABC");
// ggf. mit "-Ddef" beim Systemstart überschreiben
String key = System.getProperty("def", abc);

JavaScript im Frontend

Datei mit Objekt enthält Geheimniss und wird per .gitignore lokal gehalten

// Datei "secrets.js"
const secrets = {
    abc: geheim
};
params.def = () => {
    if (localStorage.getItem('def')) {
        return "ganzgeheim";
    } else {
        return secrets.abc;
    }
}
// Datei "index.html"
// im <head> einbinden mit
// <script src="secrets.js"></script>
const key1 = secrets.abc;
// ggf. mit localStorage übersteuern
// localStorage.setItem('def', true)
const key2 = secrets.def();
// localStorage.removeItem('def')

Parameter in URL (Java)

// seite1.jsp
<%@ page import="java.util.Base64,java.net.URLEncoder,java.nio.charset.StandardCharsets" %>
<%
    String abc = "a " + request.getParameter("b") + " " + pageContext.getAttribute("c");
    Base64.Encoder encoder = Base64.getEncoder();
    String base64 = encoder.encodeToString(abc.getBytes());
    String urlparam = URLEncoder.encode(base64, StandardCharsets.UTF_8.toString());
%>
<a href="seite2.jsp?abc=<%= urlparam %>">Seite 2</a>
// seite2.jsp
<%@ page import="java.util.Base64,java.net.URLDecoder,java.nio.charset.StandardCharsets" %>
<%
    String urlparam = request.getParameter("abc");
    String base64 = URLDecoder.decode(urlparam, StandardCharsets.UTF_8.toString());
    Base64.Decoder decoder = Base64.getDecoder();
    String[] abc = new String(decoder.decode(base64)).split(" ");
    a = abc[0];
%>