SlideShare une entreprise Scribd logo
1  sur  89
Télécharger pour lire hors ligne
JWT
To infinity

& beyond!
authentication
Luís Cobucci

@lcobucci
https://goo.gl/gbd3H5
Tokens?
https://goo.gl/C0LI6F
Browser
Server DB
Browser
Server
1. presents credentials
POST /login


{

"email": "aa@aa.com",
"password": "amazing!"

}
DB
Browser
Server DB
1. presents credentials
2. validates and starts a session
Browser
Server DB
1. presents credentials
2. validates and starts a session
200 OK
Set-Cookie: PHPSESSIONID=ABC123;
Domain=foo.bar; Secure; HttpOnly;
Expires=Thu, 1 Jun 2017 12:00:00
GMT
Browser
Server DB
1. presents credentials
2. validates and starts a session
200 OK
Set-Cookie: PHPSESSIONID=ABC123;
Domain=foo.bar; Secure; HttpOnly;
Expires=Thu, 1 Jun 2017 12:00:00
GMT
Browser
Server DB
1. presents credentials
2. validates and starts a session
3. sends cookies on next requests
GET /
Cookie: PHPSESSIONID=ABC123
Browser
Server DB
1. presents credentials
2. validates and starts a session
3. sends cookies on next requests
4. reads session data and returns a
specific response for logged user
200 OK
Hello John!
“ (…) Each request from any client
contains all the information
necessary to service the request, and
session state is held in the client.
Representational State Transfer - Wikipedia
A mission
http://goo.gl/RfVHNu
{
"token": "abc123", "uid": 1, "expiration": "…",

"scope": ["a", "b", "c"]
}
{
"token": "abc123", "uid": 1,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "def123", "uid": 2,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "abc123", "uid": 1,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "def123", "uid": 2,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "abc456", "uid": 3,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "def456", "uid": 4,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "abc123", "uid": 1,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "def123", "uid": 2,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "abc456", "uid": 3,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "def456", "uid": 4,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "abc789", "uid": 5,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "def789", "uid": 6,

"expiration": "…", "scope": ["a"]
}
{
"token": "ghi123", "uid": 1,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "jkl123", "uid": 2,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "ghi456", "uid": 3,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "jkl456", "uid": 4,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "ghi789", "uid": 5,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "jkl789", "uid": 6,

"expiration": "…", "scope": ["a"]
}
{
"token": "abc123", "uid": 1,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "def123", "uid": 2,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "abc456", "uid": 3,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "def456", "uid": 4,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "abc789", "uid": 5,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "def789", "uid": 6,

"expiration": "…", "scope": ["a"]
}
{
"token": "ghi123", "uid": 1,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "jkl123", "uid": 2,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "ghi456", "uid": 3,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "jkl456", "uid": 4,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "ghi789", "uid": 5,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "jkl789", "uid": 6,

"expiration": "…", "scope": ["a"]
}
{
"token": "abc123", "uid": 1,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "def123", "uid": 2,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "abc456", "uid": 3,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "def456", "uid": 4,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "abc789", "uid": 5,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "def789", "uid": 6,

"expiration": "…", "scope": ["a"]
}
{
"token": "ghi123", "uid": 1,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "jkl123", "uid": 2,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "ghi456", "uid": 3,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "jkl456", "uid": 4,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "ghi789", "uid": 5,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "jkl789", "uid": 6,

"expiration": "…", "scope": ["a"]
}
{
"token": "abc123", "uid": 1,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "def123", "uid": 2,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "abc456", "uid": 3,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "def456", "uid": 4,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "abc789", "uid": 5,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "def789", "uid": 6,

"expiration": "…", "scope": ["a"]
}
{
"token": "ghi123", "uid": 1,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "jkl123", "uid": 2,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "ghi456", "uid": 3,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "jkl456", "uid": 4,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "ghi789", "uid": 5,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "jkl789", "uid": 6,

"expiration": "…", "scope": ["a"]
}
{
"token": "abc123", "uid": 1,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "def123", "uid": 2,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "abc456", "uid": 3,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "def456", "uid": 4,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "abc789", "uid": 5,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "def789", "uid": 6,

"expiration": "…", "scope": ["a"]
}
{
"token": "ghi123", "uid": 1,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "jkl123", "uid": 2,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "ghi456", "uid": 3,

"expiration": "…", "scope": ["a", "b", "c"]
}
{
"token": "jkl456", "uid": 4,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "ghi789", "uid": 5,

"expiration": "…", "scope": ["a", "b"]
}
{
"token": "jkl789", "uid": 6,

"expiration": "…", "scope": ["a"]
}
Wonderful, right?
http://goo.gl/9jQFkj
No!
http://goo.gl/XHI1fw
We need

SIMPLE !it
Luís Cobucci

@lcobucci
JOSEJSON Object Signing and Encryption
JOSEJSON Object Signing and Encryption
jws jwa
jwt jwe
jwk
eyJ0eXAiOiJKV1QiLCJhbGciOiJ
IUzI1NiJ9.eyJ1c2VyIjp7ImlkI
joxLCJuYW1lIjoiTHXDrXMgQ29i
dWNjaSJ9fQ.
eyJ0eXAiOiJKV1QiLCJhbGciOiJ
IUzI1NiJ9.eyJ1c2VyIjp7ImlkI
joxLCJuYW1lIjoiTHXDrXMgQ29i
dWNjaSJ9fQ.
base64_encode()
eyJ0eXAiOiJKV1QiLCJhbGciOiJ
IUzI1NiJ9.eyJ1c2VyIjp7ImlkI
joxLCJuYW1lIjoiTHXDrXMgQ29i
dWNjaSJ9fQ.
eyJ0eXAiOiJKV1QiLCJhbGciOiJ
IUzI1NiJ9
.
eyJ1c2VyIjp7ImlkIjoxLCJuYW1
lIjoiTHXDrXMgQ29idWNjaSJ9fQ
.
Base64URL
eyJ0eXAiOiJKV1QiLCJhbGciOiJ
IUzI1NiJ9
.
eyJ1c2VyIjp7ImlkIjoxLCJuYW1
lIjoiTHXDrXMgQ29idWNjaSJ9fQ
.
+ → -

/ → _

= → (removed)
TeSJWlQ/
S4YaOgK5tz7j+3KxBA
g3HTONa9NP80R+9mY=
TeSJWlQ_S4YaOgK5tz7
j-3KxBAg3HTONa9NP80
R-9mY
function base64url_encode(string $data): string {
$data = base64_encode($data);


return rtrim(

strtr($data, '+/', '-_'),
'='
);
}
function base64url_decode(string $data): string {

if ($remainder = strlen($data) % 4) {
$data .= str_repeat('=', 4 - $remainder);
}
return base64_decode(

strtr($data, '-_', '+/')
);
}
eyJ0eXAiOiJKV1QiLCJhbGciOiJ
IUzI1NiJ9
.
eyJ1c2VyIjp7ImlkIjoxLCJuYW1
lIjoiTHXDrXMgQ29idWNjaSJ9fQ
.
{

"typ": "JWT",

"alg": "none"

}
{

"user": {

"id": 1,

"name": "Luís Cobucci"

}

}
The JSON!
http://goo.gl/gH0hsx
401
Unauthorised
http://goo.gl/yyZ7oC
Client
API DB
1. presents credentials
POST /auth


{

"email": "aa@aa.com",
"password": "amazing!"

}
Client
API DB
1. presents credentials
2. validates and creates a token
Client
API
- issuer: auth.example.com
- permitted to: client.example.com
- expires in 300 seconds
DB
1. presents credentials
2. validates and creates a token
201 Created


{

"token": "…"

}
Client
API DB
1. presents credentials
2. validates and creates a token
3. sends the issued token
GET /
Authorization: …
Client
API DB
1. presents credentials
2. validates and creates a token
3. sends the issued token
4. verifies the signature, validates the
claims and processes the request
- is it valid?
- client allowed?
- expected issuer?
- can it be used at this moment?
Client
API DB
How about OAuth2?
Sessions
https://goo.gl/KNrl16
file
Webserver
Set-Cookie:

SESSION_ID=123abc
file a
Webserver
Client
SESSION_ID=123abc
file a
Webserver 1
Client
SESSION_ID=123abc
file b
Webserver 2
file c
Webserver 3
Load balancer
Webserver 1
Client
SESSION=eyJ0eXAiOiJKV1QiLCJhbGciO
iJIUzI1NiJ9.eyJ1c2VyIjp7ImlkIjoxL
CJuYW1lIjoiTHXDrXMgQ29idWNjaSJ9fQ
.hv9V7gBBJPeWMbwFFmRP7clLuof7r9fV
JzZbLZIxBTs
Webserver 2 Webserver 3
Load balancer
!
1. cannot store private information
in the session



2. sessions cannot be invalidated


3. increased network traffic



4. race conditions with highly
concurrent HTTP requests writing
to session



5. limit on the amount of data
stored in session
More!!
https://goo.gl/gEjEMm
https://goo.gl/GB6YkQ
Let’s investigate it
{

"typ": "JWT",

"alg": "none"

}
{

"user": {

"id": 1,

"name": "Luís Cobucci"

}

}
headers
{

"typ": "JWT",

"alg": "none"

}
{

"user": {

"id": 1,

"name": "Luís Cobucci"

}

}
headers
{

"typ": "JWT",

"alg": "none"

}
{

"user": {

"id": 1,

"name": "Luís Cobucci"

}

}
claims
Base64URL( )

+ "." + 

Base64URL( )

+ "."
headers
claims
headers
{

"typ": "JWT",

"alg": "none"

}
{

"user": {

"id": 1,

"name": "Luís Cobucci"

}

}
claims
eyJhbGciOiJub25lIiwidHlwIjo
iSldUIn0

.

eyJ1c2VyIjp7ImlkIjoxLCJuYW1
lIjoiTHXDrXMgQ29idWNjaSJ9fQ

.
Can you trust it?
https://goo.gl/EeeIdu
Base64URL( )

+ "." + 

Base64URL( )
headers
claims
payload
Base64URL( )

+ "." + 

Base64URL( )
headers
claims
payload
= alg( , )payload keysignature
Base64URL( )

+ "." + 

Base64URL( )

+ "." + 

Base64URL( )
headers
claims
signature
function jwt_create(
array $headers,
array $claims,
string $key
): string {

$headers = base64url_encode(json_encode($headers));

$claims = base64url_encode(json_encode($claims));
$payload = $headers . '.' . $claims;
$signature = base64url_encode(

hash_hmac('sha256', $payload, $key, true)

);
return $payload . '.' . $signature;
}
What
algorithms?
https://goo.gl/qNTg3D
HS256
HS384
HS512
RS256
RS384
RS512
ES256
ES384
ES512
PS256
PS384
PS512
none
HMAC
RSA
ECDSA
RSASSA-PSS
HS256
HS384
HS512
RS256
RS384
RS512
ES256
ES384
ES512
PS256
PS384
PS512
none
HMAC
RSA
ECDSA
RSASSA-PSS
HS256
HS384
HS512
RS256
RS384
RS512
ES256
ES384
ES512
PS256
PS384
PS512
none
HMAC
RSA
ECDSA
RSASSA-PSS
headers
{

"typ": "JWT",

"alg": "HS256"

}
{

"user": {

"id": 1,

"name": "Luís Cobucci"

}

}
claims
key
Hello JWT+JWS!
eyJhbGciOiJub25lIiwidHlwIjo
iSldUIn0

.

eyJ1c2VyIjp7ImlkIjoxLCJuYW1
lIjoiTHXDrXMgQ29idWNjaSJ9fQ

.

hv9V7gBBJPeWMbwFFmRP7clLuof
7r9fVJzZbLZIxBTs
How much data?
https://goo.gl/eHFQwO
iat (NumericDate)
exp (NumericDate)
nbf (NumericDate)
jti (String)
iss (StringOrUri)
aud (StringOrUri[])
sub (StringOrUri)
iat (NumericDate)
exp (NumericDate)
nbf (NumericDate)
jti (String)
iss (StringOrUri)
aud (StringOrUri[])
sub (StringOrUri)
case-sensitive
https://goo.gl/bkXMeq
Revoke tokens?
PHP libraries!
https://goo.gl/bGP8u8
declare(strict_types=1);
require 'vendor/autoload.php';
use LcobucciJWTConfiguration;
use LcobucciJWTSignerKey;
use LcobucciJWTSignerHmacSha256;
return Configuration::forSymmetricSigner(
new Sha256(),
new Key('my super secret key')
);
declare(strict_types=1);
require 'vendor/autoload.php';
use LcobucciJWTConfiguration;
use LcobucciJWTSignerKey;
use LcobucciJWTSignerRsaSha256;
return Configuration::forAsymmetricSigner(
new Sha256(),
new Key('file://private.pem', 'testing'),
new Key('file://public.pem')
);
declare(strict_types=1);
/** @var LcobucciJWTConfiguration $config */
$config = require 'config.php';
$signer = $config->getSigner();
$key = $config->getSigningKey();
$token = $config->createBuilder()
->withClaim('uid', 1)
->getToken($signer, $key);
declare(strict_types=1);
/** @var LcobucciJWTConfiguration $config */
$config = require 'config.php';
$signer = $config->getSigner();
$key = $config->getSigningKey();
$token = $config->createBuilder()
->withClaim('uid', 1)
->identifiedBy(bin2hex(random_bytes(16)))
->getToken($signer, $key);
declare(strict_types=1);
/** @var LcobucciJWTConfiguration $config */
$config = require 'config.php';
$signer = $config->getSigner();
$key = $config->getSigningKey();
$token = $config->createBuilder()
->withClaim('uid', 1)
->identifiedBy(bin2hex(random_bytes(16)))
->issuedBy('https://foo.bar')
->getToken($signer, $key);
declare(strict_types=1);
/** @var LcobucciJWTConfiguration $config */
$config = require 'config.php';
$signer = $config->getSigner();
$key = $config->getSigningKey();
$token = $config->createBuilder()
->withClaim('uid', 1)
->identifiedBy(bin2hex(random_bytes(16)))
->issuedBy('https://foo.bar')

->permittedFor('https://client1.bar')

->permittedFor('https://client2.bar')
->getToken($signer, $key);
declare(strict_types=1);
/** @var LcobucciJWTConfiguration $config */
$config = require 'config.php';
$signer = $config->getSigner();
$key = $config->getSigningKey();
$now = new DateTimeImmutable();
$token = $config->createBuilder()
->withClaim('uid', 1)
->identifiedBy(bin2hex(random_bytes(16)))
->issuedBy('https://foo.bar')

->permittedFor('https://client1.bar')

->permittedFor('https://client2.bar')

->issuedAt($now)

->canOnlyBeUsedAfter($now->modify('+5 minutes'))

->expiresAt($now->modify('+1 hour'))
->getToken($signer, $key);
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9

.

eyJ1aWQiOjEsImp0aSI6ImFhMzk3YzA2ZDUwZmRhNjYyYWUwZGE4OTU2ODdmN
zY3IiwiaXNzIjoiaHR0cHM6Ly9mb28uYmFyIiwiYXVkIjpbImh0dHBzOi8vY2
xpZW50MS5iYXIiLCJodHRwczovL2NsaWVudDIuYmFyIl0sImlhdCI6IjE0OTU
xNzg5MDQuODY4ODc5IiwibmJmIjoiMTQ5NTE3OTIwNC44Njg4NzkiLCJleHAi
OiIxNDk1MTgyNTA0Ljg2ODg3OSJ9

.

jwXzXjm8cU92yxP3XcENg_ZnDvW1MkRTzSoaAwOYCTlSdQ5rv-
dCLn_7_XPLHSuiACt_aFTnB093GYTpJQKRnqIFPYteK2jVnQALXNPxntnp-
v6SMiFBxofCaVSjgKTWdqkWB4agWrTR77HK_iKdFoZMIdpr8UUBJatkc_MCoD
vDMtuDRXwIEBfjs9baICtBvTZyDD7iiMmF4F_qvp2mWd_Qy93gZCrePKAJsgY
-
sujg84iQFOs-6I3GjybzA0U0Y_bTmCmQHfhRUX5_gL21bZxBFef38OFKW73Vx
ehBxM4Ok_nWRbGY7ehsMBshXkJQfp97TJ1cV35a9zyAVXC04A
{

"typ": "JWT",

"alg": "RS256"

}
{

"uid": 1,
"jti": "aa397c06d50fda662ae0da895687f767",
"iss": "https://foo.bar",
"aud": ["https://client1.bar", “https://client2.bar”],
"iat": "1495178904.868879",
"nbf": "1495179204.868879",
"exp": "1495182504.868879"

}
declare(strict_types=1);
/** @var LcobucciJWTConfiguration $config */
$config = require 'config.php';
$jwt = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOjEsImp0aSI6ImFh'
. 'Mzk3YzA2ZDUwZmRhNjYyYWUwZGE4OTU2ODdmNzY3IiwiaXNzIjoiaHR0cHM6L'
. 'y9mb28uYmFyIiwiYXVkIjpbImh0dHBzOi8vY2xpZW50MS5iYXIiLCJodHRwcz'
. 'ovL2NsaWVudDIuYmFyIl0sImlhdCI6IjE0OTUxNzg5MDQuODY4ODc5IiwibmJ'

. 'mIjoiMTQ5NTE3OTIwNC44Njg4NzkiLCJleHAiOiIxNDk1MTgyNTA0Ljg2ODg3'
. 'OSJ9.jwXzXjm8cU92yxP3XcENg_ZnDvW1MkRTzSoaAwOYCTlSdQ5rv-dCLn_7'

. '_XPLHSuiACt_aFTnB093GYTpJQKRnqIFPYteK2jVnQALXNPxntnp-v6SMiFBx'

. 'ofCaVSjgKTWdqkWB4agWrTR77HK_iKdFoZMIdpr8UUBJatkc_MCoDvDMtuDRX'

. 'wIEBfjs9baICtBvTZyDD7iiMmF4F_qvp2mWd_Qy93gZCrePKAJsgY-sujg84i'

. 'QFOs-6I3GjybzA0U0Y_bTmCmQHfhRUX5_gL21bZxBFef38OFKW73VxehBxM4O'

. 'k_nWRbGY7ehsMBshXkJQfp97TJ1cV35a9zyAVXC04A';



$token = $config->getParser()->parse($jwt);
declare(strict_types=1);
use LcobucciClockSystemClock;

use LcobucciJWTValidationConstraint;
/** @var LcobucciJWTConfiguration $config */
$config = require 'config.php';
$signer = $config->getSigner();
$key = $config->getVerificationKey();

$token = $config->getParser()->parse('eyJ0eNiJ9 (...)');
$constraints = [
new ConstraintIssuedBy('https://foo.bar', 'https://bar.foo'),
new ConstraintPermittedFor('https://client2.bar'),

new ConstraintValidAt(new SystemClock()),

new ConstraintSignedWith($signer, $key)

];



$config->getValidator()->assert($token, ...$constraints);
declare(strict_types=1);
use LcobucciClockSystemClock;

use LcobucciJWTValidationConstraint;
/** @var LcobucciJWTConfiguration $config */
$config = require 'config.php';
$signer = $config->getSigner();
$key = $config->getVerificationKey();

$token = $config->getParser()->parse('eyJ0eNiJ9 (...)');
$constraints = [
new ConstraintIssuedBy('https://foo.bar', 'https://bar.foo'),
new ConstraintPermittedFor('https://client2.bar'),

new ConstraintValidAt(new SystemClock()),

new ConstraintSignedWith($signer, $key)

];



var_dump($config->getValidator()->validate($token, ...$constraints));
It’s up to you!
https://goo.gl/vYG4zt
JWT
To infinity

& beyond!
authentication
Luís Cobucci

@lcobucci
https://goo.gl/gbd3H5
Thanks!
@lcobucci

Contenu connexe

Tendances

BloodHound: Attack Graphs Practically Applied to Active Directory
BloodHound: Attack Graphs Practically Applied to Active DirectoryBloodHound: Attack Graphs Practically Applied to Active Directory
BloodHound: Attack Graphs Practically Applied to Active DirectoryAndy Robbins
 
An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...
An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...
An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...joaomatosf_
 
Just-In-Time Compiler in PHP 8
Just-In-Time Compiler in PHP 8Just-In-Time Compiler in PHP 8
Just-In-Time Compiler in PHP 8Nikita Popov
 
關於SQL Injection的那些奇技淫巧
關於SQL Injection的那些奇技淫巧關於SQL Injection的那些奇技淫巧
關於SQL Injection的那些奇技淫巧Orange Tsai
 
Exploiting Deserialization Vulnerabilities in Java
Exploiting Deserialization Vulnerabilities in JavaExploiting Deserialization Vulnerabilities in Java
Exploiting Deserialization Vulnerabilities in JavaCODE WHITE GmbH
 
Redis & ZeroMQ: How to scale your application
Redis & ZeroMQ: How to scale your applicationRedis & ZeroMQ: How to scale your application
Redis & ZeroMQ: How to scale your applicationrjsmelo
 
Defending against Java Deserialization Vulnerabilities
 Defending against Java Deserialization Vulnerabilities Defending against Java Deserialization Vulnerabilities
Defending against Java Deserialization VulnerabilitiesLuca Carettoni
 
Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界Gelis Wu
 
Black Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized CommunicationBlack Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized Communicationmsaindane
 
A little bit about code injection in WebApplication Frameworks (CVE-2018-1466...
A little bit about code injection in WebApplication Frameworks (CVE-2018-1466...A little bit about code injection in WebApplication Frameworks (CVE-2018-1466...
A little bit about code injection in WebApplication Frameworks (CVE-2018-1466...ufpb
 
Securing a Web App with Security Keys
Securing a Web App with Security KeysSecuring a Web App with Security Keys
Securing a Web App with Security KeysFIDO Alliance
 
What should a hacker know about WebDav?
What should a hacker know about WebDav?What should a hacker know about WebDav?
What should a hacker know about WebDav?Mikhail Egorov
 
SSRF For Bug Bounties
SSRF For Bug BountiesSSRF For Bug Bounties
SSRF For Bug BountiesOWASP Nagpur
 
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016Christian Schneider
 
Windows privilege escalation by Dhruv Shah
Windows privilege escalation by Dhruv ShahWindows privilege escalation by Dhruv Shah
Windows privilege escalation by Dhruv ShahOWASP Delhi
 

Tendances (20)

BloodHound: Attack Graphs Practically Applied to Active Directory
BloodHound: Attack Graphs Practically Applied to Active DirectoryBloodHound: Attack Graphs Practically Applied to Active Directory
BloodHound: Attack Graphs Practically Applied to Active Directory
 
An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...
An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...
An Overview of Deserialization Vulnerabilities in the Java Virtual Machine (J...
 
Just-In-Time Compiler in PHP 8
Just-In-Time Compiler in PHP 8Just-In-Time Compiler in PHP 8
Just-In-Time Compiler in PHP 8
 
關於SQL Injection的那些奇技淫巧
關於SQL Injection的那些奇技淫巧關於SQL Injection的那些奇技淫巧
關於SQL Injection的那些奇技淫巧
 
Exploiting Deserialization Vulnerabilities in Java
Exploiting Deserialization Vulnerabilities in JavaExploiting Deserialization Vulnerabilities in Java
Exploiting Deserialization Vulnerabilities in Java
 
Redis & ZeroMQ: How to scale your application
Redis & ZeroMQ: How to scale your applicationRedis & ZeroMQ: How to scale your application
Redis & ZeroMQ: How to scale your application
 
Defending against Java Deserialization Vulnerabilities
 Defending against Java Deserialization Vulnerabilities Defending against Java Deserialization Vulnerabilities
Defending against Java Deserialization Vulnerabilities
 
JSON Web Tokens
JSON Web TokensJSON Web Tokens
JSON Web Tokens
 
Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界Net 6 的 blazor 開發新視界
Net 6 的 blazor 開發新視界
 
Json Web Token - JWT
Json Web Token - JWTJson Web Token - JWT
Json Web Token - JWT
 
Black Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized CommunicationBlack Hat EU 2010 - Attacking Java Serialized Communication
Black Hat EU 2010 - Attacking Java Serialized Communication
 
Jwt Security
Jwt SecurityJwt Security
Jwt Security
 
A little bit about code injection in WebApplication Frameworks (CVE-2018-1466...
A little bit about code injection in WebApplication Frameworks (CVE-2018-1466...A little bit about code injection in WebApplication Frameworks (CVE-2018-1466...
A little bit about code injection in WebApplication Frameworks (CVE-2018-1466...
 
Securing a Web App with Security Keys
Securing a Web App with Security KeysSecuring a Web App with Security Keys
Securing a Web App with Security Keys
 
What should a hacker know about WebDav?
What should a hacker know about WebDav?What should a hacker know about WebDav?
What should a hacker know about WebDav?
 
The basics of fluentd
The basics of fluentdThe basics of fluentd
The basics of fluentd
 
SSRF For Bug Bounties
SSRF For Bug BountiesSSRF For Bug Bounties
SSRF For Bug Bounties
 
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
 
Windows privilege escalation by Dhruv Shah
Windows privilege escalation by Dhruv ShahWindows privilege escalation by Dhruv Shah
Windows privilege escalation by Dhruv Shah
 
JSON Web Token
JSON Web TokenJSON Web Token
JSON Web Token
 

En vedette

PHP UK 2017 - Don't Lose Sleep - Secure Your REST
PHP UK 2017 - Don't Lose Sleep - Secure Your RESTPHP UK 2017 - Don't Lose Sleep - Secure Your REST
PHP UK 2017 - Don't Lose Sleep - Secure Your RESTAdam Englander
 
Driving Design through Examples
Driving Design through ExamplesDriving Design through Examples
Driving Design through ExamplesCiaranMcNulty
 
Hopping in clouds - phpuk 17
Hopping in clouds - phpuk 17Hopping in clouds - phpuk 17
Hopping in clouds - phpuk 17Michele Orselli
 
Debugging Effectively - PHP UK 2017
Debugging Effectively - PHP UK 2017Debugging Effectively - PHP UK 2017
Debugging Effectively - PHP UK 2017Colin O'Dell
 
Enough suffering, fix your architecture!
Enough suffering, fix your architecture!Enough suffering, fix your architecture!
Enough suffering, fix your architecture!Luís Cobucci
 
SunshinePHP 2017 - Making the most out of MySQL
SunshinePHP 2017 - Making the most out of MySQLSunshinePHP 2017 - Making the most out of MySQL
SunshinePHP 2017 - Making the most out of MySQLGabriela Ferrara
 
My app is secure... I think
My app is secure... I thinkMy app is secure... I think
My app is secure... I thinkWim Godden
 
Docker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPDocker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPChris Tankersley
 
WordPress for the modern PHP developer
WordPress for the modern PHP developerWordPress for the modern PHP developer
WordPress for the modern PHP developerChris Sherry
 
Autenticação com Json Web Token (JWT)
Autenticação com Json Web Token (JWT)Autenticação com Json Web Token (JWT)
Autenticação com Json Web Token (JWT)Ivan Rosolen
 
Demystifying Object-Oriented Programming - PHP UK Conference 2017
Demystifying Object-Oriented Programming - PHP UK Conference 2017Demystifying Object-Oriented Programming - PHP UK Conference 2017
Demystifying Object-Oriented Programming - PHP UK Conference 2017Alena Holligan
 
Code Coverage for Total Security in Application Migrations
Code Coverage for Total Security in Application MigrationsCode Coverage for Total Security in Application Migrations
Code Coverage for Total Security in Application MigrationsDana Luther
 
Debugging Effectively - SunshinePHP 2017
Debugging Effectively - SunshinePHP 2017Debugging Effectively - SunshinePHP 2017
Debugging Effectively - SunshinePHP 2017Colin O'Dell
 
Dip Your Toes in the Sea of Security
Dip Your Toes in the Sea of SecurityDip Your Toes in the Sea of Security
Dip Your Toes in the Sea of SecurityJames Titcumb
 
A World Without PHP
A World Without PHPA World Without PHP
A World Without PHPBen Marks
 
Learn To Test Like A Grumpy Programmer - 3 hour workshop
Learn To Test Like A Grumpy Programmer - 3 hour workshopLearn To Test Like A Grumpy Programmer - 3 hour workshop
Learn To Test Like A Grumpy Programmer - 3 hour workshopchartjes
 
Integrating React.js with PHP projects
Integrating React.js with PHP projectsIntegrating React.js with PHP projects
Integrating React.js with PHP projectsIgnacio Martín
 
Amp your site: An intro to accelerated mobile pages
Amp your site: An intro to accelerated mobile pagesAmp your site: An intro to accelerated mobile pages
Amp your site: An intro to accelerated mobile pagesRobert McFrazier
 
A recommendation engine for your php application
A recommendation engine for your php applicationA recommendation engine for your php application
A recommendation engine for your php applicationMichele Orselli
 

En vedette (20)

PHP UK 2017 - Don't Lose Sleep - Secure Your REST
PHP UK 2017 - Don't Lose Sleep - Secure Your RESTPHP UK 2017 - Don't Lose Sleep - Secure Your REST
PHP UK 2017 - Don't Lose Sleep - Secure Your REST
 
Driving Design through Examples
Driving Design through ExamplesDriving Design through Examples
Driving Design through Examples
 
Hopping in clouds - phpuk 17
Hopping in clouds - phpuk 17Hopping in clouds - phpuk 17
Hopping in clouds - phpuk 17
 
Debugging Effectively - PHP UK 2017
Debugging Effectively - PHP UK 2017Debugging Effectively - PHP UK 2017
Debugging Effectively - PHP UK 2017
 
Drupal8 for Symfony Developers
Drupal8 for Symfony DevelopersDrupal8 for Symfony Developers
Drupal8 for Symfony Developers
 
Enough suffering, fix your architecture!
Enough suffering, fix your architecture!Enough suffering, fix your architecture!
Enough suffering, fix your architecture!
 
SunshinePHP 2017 - Making the most out of MySQL
SunshinePHP 2017 - Making the most out of MySQLSunshinePHP 2017 - Making the most out of MySQL
SunshinePHP 2017 - Making the most out of MySQL
 
My app is secure... I think
My app is secure... I thinkMy app is secure... I think
My app is secure... I think
 
Docker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHPDocker for Developers - Sunshine PHP
Docker for Developers - Sunshine PHP
 
WordPress for the modern PHP developer
WordPress for the modern PHP developerWordPress for the modern PHP developer
WordPress for the modern PHP developer
 
Autenticação com Json Web Token (JWT)
Autenticação com Json Web Token (JWT)Autenticação com Json Web Token (JWT)
Autenticação com Json Web Token (JWT)
 
Demystifying Object-Oriented Programming - PHP UK Conference 2017
Demystifying Object-Oriented Programming - PHP UK Conference 2017Demystifying Object-Oriented Programming - PHP UK Conference 2017
Demystifying Object-Oriented Programming - PHP UK Conference 2017
 
Code Coverage for Total Security in Application Migrations
Code Coverage for Total Security in Application MigrationsCode Coverage for Total Security in Application Migrations
Code Coverage for Total Security in Application Migrations
 
Debugging Effectively - SunshinePHP 2017
Debugging Effectively - SunshinePHP 2017Debugging Effectively - SunshinePHP 2017
Debugging Effectively - SunshinePHP 2017
 
Dip Your Toes in the Sea of Security
Dip Your Toes in the Sea of SecurityDip Your Toes in the Sea of Security
Dip Your Toes in the Sea of Security
 
A World Without PHP
A World Without PHPA World Without PHP
A World Without PHP
 
Learn To Test Like A Grumpy Programmer - 3 hour workshop
Learn To Test Like A Grumpy Programmer - 3 hour workshopLearn To Test Like A Grumpy Programmer - 3 hour workshop
Learn To Test Like A Grumpy Programmer - 3 hour workshop
 
Integrating React.js with PHP projects
Integrating React.js with PHP projectsIntegrating React.js with PHP projects
Integrating React.js with PHP projects
 
Amp your site: An intro to accelerated mobile pages
Amp your site: An intro to accelerated mobile pagesAmp your site: An intro to accelerated mobile pages
Amp your site: An intro to accelerated mobile pages
 
A recommendation engine for your php application
A recommendation engine for your php applicationA recommendation engine for your php application
A recommendation engine for your php application
 

Similaire à JWT - To authentication and beyond!

Agile Testing Days 2018 - API Fundamentals - postman collection
Agile Testing Days 2018 - API Fundamentals - postman collectionAgile Testing Days 2018 - API Fundamentals - postman collection
Agile Testing Days 2018 - API Fundamentals - postman collectionJoEllen Carter
 
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"South Tyrol Free Software Conference
 
Browsers with Wings
Browsers with WingsBrowsers with Wings
Browsers with WingsRemy Sharp
 
HadoopとMongoDBを活用したソーシャルアプリのログ解析
HadoopとMongoDBを活用したソーシャルアプリのログ解析HadoopとMongoDBを活用したソーシャルアプリのログ解析
HadoopとMongoDBを活用したソーシャルアプリのログ解析Takahiro Inoue
 
Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! aleks-f
 
Peggy elasticsearch應用
Peggy elasticsearch應用Peggy elasticsearch應用
Peggy elasticsearch應用LearningTech
 
The Testing Games: Mocking, yay!
The Testing Games: Mocking, yay!The Testing Games: Mocking, yay!
The Testing Games: Mocking, yay!Donny Wals
 
Eve - REST API for Humans™
Eve - REST API for Humans™Eve - REST API for Humans™
Eve - REST API for Humans™Nicola Iarocci
 
WordPressでIoTをはじめよう
WordPressでIoTをはじめようWordPressでIoTをはじめよう
WordPressでIoTをはじめようYuriko IKEDA
 
CouchDB @ red dirt ruby conference
CouchDB @ red dirt ruby conferenceCouchDB @ red dirt ruby conference
CouchDB @ red dirt ruby conferenceleinweber
 
Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)Remy Sharp
 
Is html5-ready-workshop-110727181512-phpapp02
Is html5-ready-workshop-110727181512-phpapp02Is html5-ready-workshop-110727181512-phpapp02
Is html5-ready-workshop-110727181512-phpapp02PL dream
 
jq: JSON - Like a Boss
jq: JSON - Like a Bossjq: JSON - Like a Boss
jq: JSON - Like a BossBob Tiernay
 
Elasticsearch: You know, for search! and more!
Elasticsearch: You know, for search! and more!Elasticsearch: You know, for search! and more!
Elasticsearch: You know, for search! and more!Philips Kokoh Prasetyo
 
elasticsearch - advanced features in practice
elasticsearch - advanced features in practiceelasticsearch - advanced features in practice
elasticsearch - advanced features in practiceJano Suchal
 
GraphQL & Relay - 串起前後端世界的橋樑
GraphQL & Relay - 串起前後端世界的橋樑GraphQL & Relay - 串起前後端世界的橋樑
GraphQL & Relay - 串起前後端世界的橋樑Pokai Chang
 
MongoDB Aggregation
MongoDB Aggregation MongoDB Aggregation
MongoDB Aggregation Amit Ghosh
 
Symfony & Javascript. Combining the best of two worlds
Symfony & Javascript. Combining the best of two worldsSymfony & Javascript. Combining the best of two worlds
Symfony & Javascript. Combining the best of two worldsIgnacio Martín
 

Similaire à JWT - To authentication and beyond! (20)

Agile Testing Days 2018 - API Fundamentals - postman collection
Agile Testing Days 2018 - API Fundamentals - postman collectionAgile Testing Days 2018 - API Fundamentals - postman collection
Agile Testing Days 2018 - API Fundamentals - postman collection
 
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
SFScon17 - Patrick Puecher: "Exploring data with Elasticsearch and Kibana"
 
Books
BooksBooks
Books
 
Browsers with Wings
Browsers with WingsBrowsers with Wings
Browsers with Wings
 
HadoopとMongoDBを活用したソーシャルアプリのログ解析
HadoopとMongoDBを活用したソーシャルアプリのログ解析HadoopとMongoDBを活用したソーシャルアプリのログ解析
HadoopとMongoDBを活用したソーシャルアプリのログ解析
 
Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! Look Ma, “update DB to HTML5 using C++”, no hands! 
Look Ma, “update DB to HTML5 using C++”, no hands! 
 
Peggy elasticsearch應用
Peggy elasticsearch應用Peggy elasticsearch應用
Peggy elasticsearch應用
 
The Testing Games: Mocking, yay!
The Testing Games: Mocking, yay!The Testing Games: Mocking, yay!
The Testing Games: Mocking, yay!
 
Eve - REST API for Humans™
Eve - REST API for Humans™Eve - REST API for Humans™
Eve - REST API for Humans™
 
WordPressでIoTをはじめよう
WordPressでIoTをはじめようWordPressでIoTをはじめよう
WordPressでIoTをはじめよう
 
CouchDB @ red dirt ruby conference
CouchDB @ red dirt ruby conferenceCouchDB @ red dirt ruby conference
CouchDB @ red dirt ruby conference
 
Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)Is HTML5 Ready? (workshop)
Is HTML5 Ready? (workshop)
 
Is html5-ready-workshop-110727181512-phpapp02
Is html5-ready-workshop-110727181512-phpapp02Is html5-ready-workshop-110727181512-phpapp02
Is html5-ready-workshop-110727181512-phpapp02
 
Data exchange formats
Data exchange formatsData exchange formats
Data exchange formats
 
jq: JSON - Like a Boss
jq: JSON - Like a Bossjq: JSON - Like a Boss
jq: JSON - Like a Boss
 
Elasticsearch: You know, for search! and more!
Elasticsearch: You know, for search! and more!Elasticsearch: You know, for search! and more!
Elasticsearch: You know, for search! and more!
 
elasticsearch - advanced features in practice
elasticsearch - advanced features in practiceelasticsearch - advanced features in practice
elasticsearch - advanced features in practice
 
GraphQL & Relay - 串起前後端世界的橋樑
GraphQL & Relay - 串起前後端世界的橋樑GraphQL & Relay - 串起前後端世界的橋樑
GraphQL & Relay - 串起前後端世界的橋樑
 
MongoDB Aggregation
MongoDB Aggregation MongoDB Aggregation
MongoDB Aggregation
 
Symfony & Javascript. Combining the best of two worlds
Symfony & Javascript. Combining the best of two worldsSymfony & Javascript. Combining the best of two worlds
Symfony & Javascript. Combining the best of two worlds
 

Dernier

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 

Dernier (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 

JWT - To authentication and beyond!