Configura registrazione sessione

È possibile configurare i report di registrazione delle sessioni per l'agente del browser APM.

Per impostazione predefinita, l'agente del browser APM crea un cookie di tracciamento della sessione che tiene traccia dell'attività di un browser univoco fino al riavvio del browser. Ciò potrebbe discostarsi da ciò che viene utilizzato dall'Application Server. Più specificamente, potrebbe tenere traccia dei dati prima e dopo il login e il logout. sessionId non corrisponde al sessionId che potrebbe essere presente nei file di log. Ci sono alcuni approcci che potrebbero aiutare ad allineare il server sessionId con il reporting del browser. Quando l'obiettivo è garantire che le interruzioni di sessione vengano applicate solo alle pagine di login/logout, è possibile eseguire questa operazione creando una strumentazione solo per questo scenario.

Aggiungi interruzioni di sessione

Una chiamata a document.ApmSdk.resetSession() nel codice javascript garantirà la chiusura della sessione esistente e l'avvio della nuova sessione. In questo modo, isolerà le interazioni prima che questa funzione sia stata chiamata dalle interazioni dopo di essa. L'aggiunta di questo elemento alla pagina di login o alla pagina di arrivo del logout (e del timeout) può contribuire a garantire che le interruzioni di sessione nel report dell'agente del browser corrispondano alle interruzioni delle esperienze cliente.

Codice javascript di esempio che attiva un'interruzione di sessione:

<script language="text/javascript">
   if (document.ApmSdk) {       
       document.ApmSdk.resetSession();
   }
</script>

Allinea il browser SessionId al server SessionId

Un approccio alternativo per allineare la sessione del server alla sessione del browser consiste nell'allineare il Id utilizzato per identificare una sessione. Alcuni modi per farlo sono descritti di seguito.

L'esposizione raw a sessionId potrebbe indebolire il CSRF

L'esposizione di sessionId a javascript e APM potrebbe indebolire le protezioni CSRF (Cross-Site Request Forgery).

Il vantaggio di sessionId identico (nei log del server e in APM) dovrebbe essere valutato in base all'impatto sulle misure di sicurezza. Un hash one way potrebbe rendere l'unicità identica senza compromettere le protezioni. Ciò richiederebbe la stessa funzione hash nei casi in cui i log del server e i log dell'agente del browser siano collegati tra loro.

Gli esempi riportati di seguito utilizzano il valore raw sessionId, non una particolare funzione hash:

Recupero dell'applicazione sessionId all'agente del browser APM

Esistono diversi modi per ottenere sessionId dall'Application Server all'agente del browser.
  • Inizializza apmrum.sid dal codice applicazione

    Ciò richiede la capacità nel codice dell'applicazione di esporre il sessionId attivo nell'html risultante. Il codice dell'applicazione deve produrre il codice html/javascript che inizializza la proprietà apmrum.sid con sessionId.

    Il codice dell'applicazione si aggiunge al corpo del codice html come il seguente:

    <script language="text/javascript">
       window.apmrum = window.apmrum || {};
       window.apmrum.sid = '<?PHP echo getSessionId(); ?>';
    </script>
  • Esporre il cookie sessionId e indicare all'agente del browser di utilizzarlo

    Nei casi in cui l'applicazione sessionId non è protetta dal flag HttpOnly, l'agente del browser può essere configurato per leggere e utilizzare il valore del cookie sessionId.

    Esempio dell'html riportato di seguito utilizzando il nome cookie dell'Application Server, in questo caso 'JSessionId':

    <script language="text/javascript">
       window.apmrum = window.apmrum || {};
       window.apmrum.tracking_cookie = 'JSessionId';
    </script>