\XgapCsrf

Provee métodos de protección contra ataques de tipo CSRF.

Summary

Methods
Properties
Constants
idForCurrentPage()
generateToken()
isTokenValid()
generateSessionToken()
isSessionTokenValid()
No public properties found
No constants found
getSessionTokenName()
No protected properties found
N/A
No private methods found
No private properties found
N/A

Methods

idForCurrentPage()

idForCurrentPage(string  $name) : string

Retorna el identificador de un token para la página actual.

Parameters

string $name

nombre para identificar unívocamente el token dentro de la página

Returns

string

generateToken()

generateToken(string  $id) : string

Genera un token que depende de <var>$id</var>, el ID de sesión y el parámetro de configuración <var>sal_hashes</var>.

El resultado es reproducible, es decir que es el mismo mientras no cambien los valores mencionados.

Parameters

string $id

un identificador para el token a generar; puede ser cualquier cosa que tenga sentido para la aplicación, por ejemplo el nombre del formulario donde se va a incluir el token

Throws

\InvalidArgumentException

si $id es vacío

Returns

string

isTokenValid()

isTokenValid(string  $token, string  $id) : boolean

Permite comprobar si un token es válido, es decir, si fue generado con {@link XgapCsrf::generateToken()} para el <var>$id</var> dado y en la misma sesión.

Parameters

string $token

token a verificar

string $id

identificador usado al generar el token

Returns

boolean —

TRUE si es válido; FALSE si no

generateSessionToken()

generateSessionToken(string  $id, integer  $timeout) : string

Genera un token asociado a <var>$id</var>, que se guarda en la sesión.

El resultado no es reproducible, es decir que si se vuelve a invocar este método con el mismo $id, se genera un valor diferente y se sobreescribe el que pudiera haber en la sesión, invalidando el token anterior.

Parameters

string $id

un identificador para el token a generar; puede ser cualquier cosa que tenga sentido para la aplicación, por ejemplo el nombre del formulario donde se va a incluir el token

integer $timeout

tiempo máximo en segundos que puede durar el token; usar 0 para mantener el token durante toda la sesión. Actualmente no se está teniendo en cuenta; se lo considera siempre igual a 0.

Throws

\InvalidArgumentException

si $id es vacío

Returns

string

isSessionTokenValid()

isSessionTokenValid(string  $token, string  $id, boolean  $invalidar = TRUE) : boolean

Permite comprobar si un token generado es válido, es decir, si en la sesión actual se generó un token con {@link XgapCsrf::generateSessionToken()} para <var>$id</var> y coincide con el dado.

Parameters

string $token

token a verificar

string $id

identificador usado al generar el token

boolean $invalidar

¿se debe invalidar el token? Si es TRUE, se elimina de la sesión el token correspondiente a $id; si es FALSE se mantiene

Returns

boolean —

TRUE si es válido; FALSE si no existe en la sesión o no coincide

getSessionTokenName()

getSessionTokenName(string  $id) : string

Nombre a usar para guardar en la sesión el token <var>$id</var>.

Parameters

string $id

Returns

string