Legen Sie die Zeichenlänge und den Generierungsalgorithmus für TOMCAT SESSIONID fest

Es ist sehr einfach, den Standardalgorithmus und die Zeichenlänge von TOMCAT zum Generieren der SESSION-ID zu ändern. Ändern Sie einfach den Tag-Wert <Manager> in context.xml, zum Beispiel:

<Manager 

sessionIdLength="20" 

pathname="SESSIONS.ser" 

maxActiveSessions="8000" 

secureRandomAlgorithm="SHA1PRNG" 

secureRandomClass="java.security.SecureRandom" 

maxInactiveInterval="60"

/>

Über den roten Teil muss ich Ihnen nichts sagen. Neben SHA1PRNG gibt es noch mehrere Algorithmen. Weitere Informationen finden Sie im Kapitel zur Klasse java.security.SecureRandom im JDK DOC.

Weitere Konfigurationsmöglichkeiten finden Sie unter: http://tomcat.apache.org/tomcat-7.0-doc/config/manager.html

Der Standard-SESSIONID-Generator von TOMCAT kann bei hoher Parallelität zu Leistungseinbußen führen, da eine relativ sichere Zufallszahl zum Generieren des SESSION-ID-Werts verwendet wird.

Tatsächlich ist es unmöglich, dass die von TOMCAT generierte SESSIONID doppelte Werte aufweist. Überprüfen Sie die Quellcodedatei von TOMCAT: den folgenden Code in ManagerBase.java

    /**

     * Generieren Sie eine neue Sitzungskennung und geben Sie sie zurück.

     */

    protected String genericSessionId() {

        String-Ergebnis = null;

        Tun {

            if (Ergebnis != null) {

                Duplikate++;

            }

            result = sessionIdGenerator.generateSessionId();

        } while (sessions.containsKey(result)); // Dadurch wird sichergestellt, dass die SESSIONID, die schließlich für den Client generiert wird, nicht wiederholt werden darf

        Ergebnis zurückgeben;

    }

Machen Sie sich daher keine Sorgen um die Sicherheit von SESSIONID. Wenn es eine bessere Implementierung gibt, können Sie den entsprechenden Code für ein bestimmtes Projekt ändern.

Daher können wir den Funktionsteil von SessionIdGenerator.java im TOMCAT-Quellcode ändern, um eine ID zu generieren, z. B. mithilfe von java.util.UUID+java.util.Random+ (Zufallszeichenfolge), um einen effizienteren Algorithmus zum Generieren von SESSIONID zu erstellen oder zu implementieren relevante Teile von uns selbst usw.

おすすめ

転載: blog.csdn.net/oligaga/article/details/132637167