Skip to content

Commit

Permalink
updating syntax to 2.2 standard
Browse files Browse the repository at this point in the history
  • Loading branch information
Christian Blanquera committed Jan 15, 2019
1 parent 38fb4a8 commit c043d43
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 40 deletions.
43 changes: 4 additions & 39 deletions .cradle.php
Original file line number Diff line number Diff line change
@@ -1,44 +1,9 @@
<?php //-->

use Cradle\Http\Request;
use Cradle\Http\Response;

/**
* Loads CSRF token in stage
* This file is part of a package designed for the CradlePHP Project.
*
* @param *Request $request
* @param *Response $response
* Copyright and license information can be found at LICENSE.txt
* distributed with this package.
*/
$cradle->on('csrf-load', function (Request $request, Response $response) {
//render the key
$key = md5(uniqid());
if($request->hasSession('csrf')) {
$key = $request->getSession('csrf');
}

$request->setSession('csrf', $key);
$response->setResults('csrf', $key);
});

/**
* Validates CSRF
*
* @param *Request $request
* @param *Response $response
*/
$cradle->on('csrf-validate', function (Request $request, Response $response) {
$actual = $request->getStage('csrf');
$expected = $request->getSession('csrf');

//no longer needed
$request->removeSession('csrf');

if($actual !== $expected) {
//prepare to error
$message = 'We prevented a potential attack on our servers coming from the request you just sent us.';
$message = $this->package('global')->translate($message);
$response->setError(true, $message);
}

//it passed
});
require_once __DIR__ . '/src/events.php';
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@
"satooshi/php-coveralls": "2.0.0"
},
"require": {
"cradlephp/framework": "2.*"
"cradlephp/framework": "~2.2.0"
}
}
50 changes: 50 additions & 0 deletions src/events.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<?php //-->
/**
* This file is part of a package designed for the CradlePHP Project.
*
* Copyright and license information can be found at LICENSE.txt
* distributed with this package.
*/

use Cradle\Http\Request\RequestInterface;
use Cradle\Http\Response\ResponseInterface;

/**
* Loads CSRF token in stage
*
* @param *Request $request
* @param *Response $response
*/
$this->on('csrf-load', function (RequestInterface $request, ResponseInterface $response) {
//render the key
$key = md5(uniqid());
if($request->hasSession('csrf')) {
$key = $request->getSession('csrf');
}

$request->setSession('csrf', $key);
$response->setResults('csrf', $key);
});

/**
* Validates CSRF
*
* @param *Request $request
* @param *Response $response
*/
$this->on('csrf-validate', function (RequestInterface $request, ResponseInterface $response) {
$actual = $request->getStage('csrf');
$expected = $request->getSession('csrf');

//no longer needed
$request->removeSession('csrf');

if($actual !== $expected) {
//prepare to error
$message = 'We prevented a potential attack on our servers coming from the request you just sent us.';
$message = $this->package('global')->translate($message);
$response->setError(true, $message);
}

//it passed
});

0 comments on commit c043d43

Please sign in to comment.