Skip to content

Commit 79497b2

Browse files
committed
clean code warning
1 parent 865e8ff commit 79497b2

10 files changed

+101
-24
lines changed

Diff for: src/behavior/ContentSecurityPolicy.php

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
3+
namespace bicf\securityheaders\behavior;
4+
use yii\base\Behavior;
5+
6+
/**
7+
* Class HeaderContentSecurityPolicyAcl
8+
* @package bicf\securityheaders\modules
9+
*/
10+
abstract class ContentSecurityPolicy extends Behavior
11+
{
12+
protected static $token;
13+
14+
/**
15+
* @param string $token
16+
*/
17+
public static function setContentSecurityPolicyToken($token)
18+
{
19+
if(self::$token === null){
20+
self::$token= $token;
21+
} else {
22+
throw new \UnexpectedValueException("Token already set!");
23+
}
24+
}
25+
26+
public static function getContentSecurityPolicyToken()
27+
{
28+
if(self::$token === null){
29+
self::$token= \Yii::$app->security->generateRandomString();
30+
}
31+
return self::$token;
32+
}
33+
34+
abstract public function getContentSecurityPolicyTokenValue();
35+
abstract public function getContentSecurityPolicyTokenAttribute();
36+
abstract public function getContentSecurityPolicyTokenHeader();
37+
abstract public function getContentSecurityPolicyTokenArray();
38+
}

Diff for: src/behavior/ContentSecurityPolicyDummyBehavior.php

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
namespace bicf\securityheaders\behavior;
4+
5+
/**
6+
* Class HeaderContentSecurityPolicyAcl
7+
* @package bicf\securityheaders\modules
8+
*/
9+
class ContentSecurityPolicyDummyBehavior extends ContentSecurityPolicy
10+
{
11+
public function getContentSecurityPolicyTokenValue()
12+
{
13+
return "";
14+
}
15+
16+
17+
public function getContentSecurityPolicyTokenAttribute()
18+
{
19+
return "";
20+
21+
}
22+
23+
public function getContentSecurityPolicyTokenHeader()
24+
{
25+
return "";
26+
27+
}
28+
29+
public function getContentSecurityPolicyTokenArray()
30+
{
31+
return [];
32+
}
33+
34+
35+
}

Diff for: src/behavior/ContentSecurityPolicyNonceBehavior.php

+3-18
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,11 @@
77
* Class HeaderContentSecurityPolicyAcl
88
* @package bicf\securityheaders\modules
99
*/
10-
class ContentSecurityPolicyNonceBehavior extends Behavior
10+
class ContentSecurityPolicyNonceBehavior extends ContentSecurityPolicy
1111
{
12-
private static $token;
13-
14-
public static function setContentSecurityPolicyToken($token)
12+
public function getContentSecurityPolicyTokenValue()
1513
{
16-
if(self::$token === null){
17-
self::$token= $token;
18-
} else {
19-
throw new \UnexpectedValueException("Token already setted!");
20-
}
21-
}
22-
23-
public static function getContentSecurityPolicyToken()
24-
{
25-
if(self::$token === null){
26-
self::$token= \Yii::$app->security->generateRandomString();
27-
}
28-
return self::$token;
14+
return self::getContentSecurityPolicyToken();
2915
}
3016

3117
public function getContentSecurityPolicyTokenAttribute()
@@ -43,7 +29,6 @@ public function getContentSecurityPolicyTokenHeader()
4329
public function getContentSecurityPolicyTokenArray()
4430
{
4531
return array('nonce'=>self::getContentSecurityPolicyToken());
46-
4732
}
4833

4934

Diff for: src/components/Response.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php
22
namespace bicf\securityheaders\components;
33
use bicf\securityheaders\modules\HeaderModuleBase;
4+
use bicf\securityheaders\modules\HeaderModuleInterface;
45
use Yii;
56

67
/**
@@ -91,12 +92,13 @@ public function init()
9192
public $modules=array();
9293

9394
/**
94-
*
95+
* @param $event
9596
*/
9697
public static function addSecurityHeaders($event)
9798
{
9899
/** @var $event->sender \bicf\securityheaders\components\Response */
99100
foreach ($event->sender->modules as $module){
101+
/** @var HeaderModuleInterface $module */
100102
$module->run();
101103
}
102104
}

Diff for: src/modules/HeaderAccessControlAllowOrigin.php

+4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ class HeaderAccessControlAllowOrigin extends HeaderModuleBase
1010
{
1111
public $value;
1212

13+
public function init()
14+
{
15+
}
16+
1317
public function run()
1418
{
1519
if(!$this->enabled){

Diff for: src/modules/HeaderContentSecurityPolicyAcl.php

+3
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,8 @@
99
class HeaderContentSecurityPolicyAcl extends HeaderContentSecurityPolicyBase
1010
{
1111
protected $headerName='Content-Security-Policy';
12+
public function init()
13+
{
14+
}
1215

1316
}

Diff for: src/modules/HeaderContentSecurityPolicyBase.php

+10-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22

33
namespace bicf\securityheaders\modules;
44
use bicf\securityheaders\behavior\ContentSecurityPolicyNonceBehavior;
5+
use bicf\securityheaders\behavior\ContentSecurityPolicyDummyBehavior;
56
use bicf\securityheaders\components\SecureRequestInterface;
6-
use yii\web\Response;
7+
use bicf\securityheaders\components\Response;
78

89
/**
910
* Class HeaderContentSecurityPolicyBase
@@ -29,10 +30,13 @@ abstract class HeaderContentSecurityPolicyBase extends HeaderModuleBase
2930
public $policies = array();
3031

3132
/**
32-
* @var bool
33+
* @var bool create a beahvior that handle the nonce hash
3334
*/
3435
public $nonceEnabled = true;
3536

37+
/** @var bool nonceFallback create a dummy behavior when $nonceEnabled is not enabled */
38+
public $nonceFallback = false;
39+
3640
/**
3741
* add the security header
3842
*/
@@ -57,7 +61,10 @@ public function injectBehavior(Response $response)
5761
{
5862
// Avoid double attach
5963
if($this->nonceEnabled && $response->getBehavior(SecureRequestInterface::CSP_NONCE_BEHAVIOR) === null){
60-
$rv = $response->attachBehavior(SecureRequestInterface::CSP_NONCE_BEHAVIOR,new ContentSecurityPolicyNonceBehavior() );
64+
$response->attachBehavior(SecureRequestInterface::CSP_NONCE_BEHAVIOR,new ContentSecurityPolicyNonceBehavior() );
65+
} elseif($this->nonceFallback) {
66+
$response->attachBehavior(SecureRequestInterface::CSP_NONCE_BEHAVIOR,new ContentSecurityPolicyDummyBehavior() );
67+
6168
}
6269
}
6370

Diff for: src/modules/HeaderContentSecurityPolicyMonitor.php

+3
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ class HeaderContentSecurityPolicyMonitor extends HeaderContentSecurityPolicyBase
1010
{
1111
protected $headerName='Content-Security-Policy-Report-Only';
1212

13+
public function init()
14+
{
15+
}
1316

1417

1518
}

Diff for: src/modules/HeaderModuleBase.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99
namespace bicf\securityheaders\modules;
1010

1111

12+
use bicf\securityheaders\components\Response;
1213
use yii\base\BaseObject;
13-
use yii\web\Response;
1414

1515
/**
1616
* Class HeaderModuleBase

Diff for: src/modules/HeaderModuleInterface.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
namespace bicf\securityheaders\modules;
1010

1111

12-
use yii\web\Response;
12+
use bicf\securityheaders\components\Response;
1313

1414
interface HeaderModuleInterface
1515
{

0 commit comments

Comments
 (0)