Browse Source

Add test coverage for bytes in csrf tokens.

Mark Story 3 years ago
parent
commit
d35d47a8bb
1 changed files with 3 additions and 0 deletions
  1. 3 0
      tests/TestCase/Http/Middleware/CsrfProtectionMiddlewareTest.php

+ 3 - 0
tests/TestCase/Http/Middleware/CsrfProtectionMiddlewareTest.php

@@ -87,6 +87,7 @@ class CsrfProtectionMiddlewareTest extends TestCase
             $this->assertEquals(0, $cookie['expire'], 'session duration.');
             $this->assertEquals(0, $cookie['expire'], 'session duration.');
             $this->assertEquals('/dir/', $cookie['path'], 'session path.');
             $this->assertEquals('/dir/', $cookie['path'], 'session path.');
             $this->assertEquals($cookie['value'], $request->getParam('_csrfToken'));
             $this->assertEquals($cookie['value'], $request->getParam('_csrfToken'));
+            $this->assertRegExp('/^[a-z0-9]+$/', $cookie['value']);
         };
         };
 
 
         $middleware = new CsrfProtectionMiddleware();
         $middleware = new CsrfProtectionMiddleware();
@@ -199,6 +200,8 @@ class CsrfProtectionMiddlewareTest extends TestCase
     {
     {
         $middleware = new CsrfProtectionMiddleware(['verifyTokenSource' => true]);
         $middleware = new CsrfProtectionMiddleware(['verifyTokenSource' => true]);
         $token = $middleware->createToken();
         $token = $middleware->createToken();
+        $this->assertRegexp('/^[a-z0-9]+$/', $token, 'Token should not have unencoded binary data.');
+
         $request = new ServerRequest([
         $request = new ServerRequest([
             'environment' => [
             'environment' => [
                 'REQUEST_METHOD' => $method,
                 'REQUEST_METHOD' => $method,