mirror of
https://github.com/skipperbent/simple-php-router.git
synced 2026-07-11 17:12:17 +00:00
[BUGFIX] Fixed issue with BaseCsrfVerifier matching urls against urls with parameters.
- Added optional $includeParams parameter to Url::getRelativeUrl method.
This commit is contained in:
@@ -50,12 +50,12 @@ class BaseCsrfVerifier implements IMiddleware
|
|||||||
$url = rtrim($url, '*');
|
$url = rtrim($url, '*');
|
||||||
$skip = $request->getUrl()->contains($url);
|
$skip = $request->getUrl()->contains($url);
|
||||||
} else {
|
} else {
|
||||||
$skip = ($url === $request->getUrl()->getOriginalUrl());
|
$skip = ($url === $request->getUrl()->getRelativeUrl(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($skip === true) {
|
if ($skip === true) {
|
||||||
|
|
||||||
if($this->include !== null && count($this->include) > 0) {
|
if(is_array($this->include) === true && count($this->include) > 0) {
|
||||||
foreach($this->include as $includeUrl) {
|
foreach($this->include as $includeUrl) {
|
||||||
$includeUrl = rtrim($includeUrl, '/');
|
$includeUrl = rtrim($includeUrl, '/');
|
||||||
if ($includeUrl[strlen($includeUrl) - 1] === '*') {
|
if ($includeUrl[strlen($includeUrl) - 1] === '*') {
|
||||||
@@ -64,7 +64,7 @@ class BaseCsrfVerifier implements IMiddleware
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$skip = !($includeUrl === $request->getUrl()->getOriginalUrl());
|
$skip = !($includeUrl === $request->getUrl()->getRelativeUrl(false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,10 @@ abstract class IpRestrictAccess implements IMiddleware
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param Request $request
|
||||||
|
* @throws HttpException
|
||||||
|
*/
|
||||||
public function handle(Request $request): void
|
public function handle(Request $request): void
|
||||||
{
|
{
|
||||||
if($this->validate((string)$request->getIp()) === false) {
|
if($this->validate((string)$request->getIp()) === false) {
|
||||||
|
|||||||
@@ -427,10 +427,15 @@ class Url implements JsonSerializable
|
|||||||
/**
|
/**
|
||||||
* Returns the relative url
|
* Returns the relative url
|
||||||
*
|
*
|
||||||
|
* @param bool $includeParams
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getRelativeUrl(): string
|
public function getRelativeUrl($includeParams = true): string
|
||||||
{
|
{
|
||||||
|
if($includeParams === false) {
|
||||||
|
return rtrim($this->path, '/');
|
||||||
|
}
|
||||||
|
|
||||||
$params = $this->getQueryString();
|
$params = $this->getQueryString();
|
||||||
|
|
||||||
$path = $this->path ?? '';
|
$path = $this->path ?? '';
|
||||||
|
|||||||
@@ -183,7 +183,6 @@ class RouteGroup extends Route implements IGroupRoute
|
|||||||
*/
|
*/
|
||||||
public function setSettings(array $settings, bool $merge = false): IRoute
|
public function setSettings(array $settings, bool $merge = false): IRoute
|
||||||
{
|
{
|
||||||
|
|
||||||
if (isset($settings['prefix']) === true) {
|
if (isset($settings['prefix']) === true) {
|
||||||
$this->setPrefix($settings['prefix'] . $this->prefix);
|
$this->setPrefix($settings['prefix'] . $this->prefix);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,8 +4,8 @@
|
|||||||
* Router helper class
|
* Router helper class
|
||||||
* ---------------------------
|
* ---------------------------
|
||||||
*
|
*
|
||||||
* This class is added so calls can be made statically like Router::get() making the code look pretty.
|
* This class is added so calls can be made statically like SimpleRouter::get() making the code look pretty.
|
||||||
* It also adds some extra functionality like default-namespace.
|
* It also adds some extra functionality like default-namespace etc.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
namespace Pecee\SimpleRouter;
|
namespace Pecee\SimpleRouter;
|
||||||
|
|||||||
Reference in New Issue
Block a user