dev-master
9999999-devResonant Core's Anti-CSRF Security Library
(MIT or AGPL-3.0)
The Development Requires
security session csrf appsec
Wallogit.com
2017 © Pedro Peláez
Resonant Core's Anti-CSRF Security Library
There aren't any good session-powered CSRF prevention libraries. By good we mean:, (*2)
Warning - Do not use in any project where all $_SESSION data is stored
client-side in a cookie. This will quickly run up the 4KB storage max for
an HTTP cookie., (*3)
See autoload.php for an SPL autoloader., (*4)
First, add a filter like this one:, (*5)
use \ParagonIE\AntiCSRF\AntiCSRF;
$twigEnv->addFunction(
new \Twig\TwigFunction(
'form_token',
function($lock_to = null) {
static $csrf;
if ($csrf === null) {
$csrf = new AntiCSRF;
}
return $csrf->insertToken($lock_to, false);
},
['is_safe' => ['html']]
)
);
Next, call the newly created form_token function from your templates., (*6)
$csrf = new \ParagonIE\AntiCSRF\AntiCSRF;
if (!empty($_POST)) {
if ($csrf->validateRequest()) {
// Valid
} else {
// Log a CSRF attack attempt
}
}
If your company uses this library in their products or services, you may be interested in purchasing a support contract from Paragon Initiative Enterprises., (*7)
Resonant Core's Anti-CSRF Security Library
(MIT or AGPL-3.0)
security session csrf appsec