Browse Source

fix yggdrasil host validation

main
ghost 1 year ago
parent
commit
f3896534ae
  1. 2
      src/config/app.php.example
  2. 26
      src/public/action.php
  3. 15
      src/public/download.php
  4. 8
      src/public/edit.php
  5. 2
      src/public/index.php
  6. 2
      src/public/magnet.php
  7. 2
      src/public/node.php

2
src/config/app.php.example

@ -110,7 +110,7 @@ define('COMMENT_MIN_LENGTH', 1);
define('COMMENT_MAX_LENGTH', 1000); define('COMMENT_MAX_LENGTH', 1000);
// Yggdrasil // Yggdrasil
define('YGGDRASIL_URL_REGEX', '/^0{0,1}[2-3][a-f0-9]{0,2}:/'); // thanks to @ygguser (https://github.com/YGGverse/YGGo/issues/1#issuecomment-1498182228 ) define('YGGDRASIL_HOST_REGEX', '/^0{0,1}[2-3][a-f0-9]{0,2}:/'); // thanks to @ygguser (https://github.com/YGGverse/YGGo/issues/1#issuecomment-1498182228 )
// Crawler // Crawler
define('CRAWLER_SCRAPE_QUEUE_LIMIT', 1); define('CRAWLER_SCRAPE_QUEUE_LIMIT', 1);

26
src/public/action.php

@ -35,7 +35,7 @@ switch (isset($_GET['target']) ? urldecode($_GET['target']) : false)
case 'jidenticon': case 'jidenticon':
// Yggdrasil connections only // Yggdrasil connections only
if (!preg_match(YGGDRASIL_URL_REGEX, $_SERVER['REMOTE_ADDR'])) if (!preg_match(YGGDRASIL_HOST_REGEX, $_SERVER['REMOTE_ADDR']))
{ {
$response->success = false; $response->success = false;
$response->message = _('Yggdrasil connection required for this action'); $response->message = _('Yggdrasil connection required for this action');
@ -85,7 +85,7 @@ switch (isset($_GET['target']) ? urldecode($_GET['target']) : false)
case 'approved': case 'approved':
// Yggdrasil connections only // Yggdrasil connections only
if (!preg_match(YGGDRASIL_URL_REGEX, $_SERVER['REMOTE_ADDR'])) if (!preg_match(YGGDRASIL_HOST_REGEX, $_SERVER['REMOTE_ADDR']))
{ {
$response->success = false; $response->success = false;
$response->message = _('Yggdrasil connection required for this action'); $response->message = _('Yggdrasil connection required for this action');
@ -166,7 +166,7 @@ switch (isset($_GET['target']) ? urldecode($_GET['target']) : false)
case 'public': case 'public':
// Yggdrasil connections only // Yggdrasil connections only
if (!preg_match(YGGDRASIL_URL_REGEX, $_SERVER['REMOTE_ADDR'])) if (!preg_match(YGGDRASIL_HOST_REGEX, $_SERVER['REMOTE_ADDR']))
{ {
$response->success = false; $response->success = false;
$response->message = _('Yggdrasil connection required for this action'); $response->message = _('Yggdrasil connection required for this action');
@ -236,7 +236,7 @@ switch (isset($_GET['target']) ? urldecode($_GET['target']) : false)
case 'new': case 'new':
// Yggdrasil connections only // Yggdrasil connections only
if (!preg_match(YGGDRASIL_URL_REGEX, $_SERVER['REMOTE_ADDR'])) if (!preg_match(YGGDRASIL_HOST_REGEX, $_SERVER['REMOTE_ADDR']))
{ {
$response->success = false; $response->success = false;
$response->message = _('Yggdrasil connection required for this action'); $response->message = _('Yggdrasil connection required for this action');
@ -329,7 +329,7 @@ switch (isset($_GET['target']) ? urldecode($_GET['target']) : false)
case 'star': case 'star':
// Yggdrasil connections only // Yggdrasil connections only
if (!preg_match(YGGDRASIL_URL_REGEX, $_SERVER['REMOTE_ADDR'])) if (!preg_match(YGGDRASIL_HOST_REGEX, $_SERVER['REMOTE_ADDR']))
{ {
$response->success = false; $response->success = false;
$response->message = _('Yggdrasil connection required for this action'); $response->message = _('Yggdrasil connection required for this action');
@ -396,7 +396,7 @@ switch (isset($_GET['target']) ? urldecode($_GET['target']) : false)
case 'download': case 'download':
// Yggdrasil connections only // Yggdrasil connections only
if (!preg_match(YGGDRASIL_URL_REGEX, $_SERVER['REMOTE_ADDR'])) if (!preg_match(YGGDRASIL_HOST_REGEX, $_SERVER['REMOTE_ADDR']))
{ {
$response->success = false; $response->success = false;
$response->message = _('Yggdrasil connection required for this action'); $response->message = _('Yggdrasil connection required for this action');
@ -489,7 +489,7 @@ switch (isset($_GET['target']) ? urldecode($_GET['target']) : false)
$uri->value))); $uri->value)));
// Yggdrasil url only // Yggdrasil url only
if (!preg_match(YGGDRASIL_URL_REGEX, $url)) if (!preg_match(YGGDRASIL_HOST_REGEX, $url))
{ {
continue; continue;
} }
@ -521,7 +521,7 @@ switch (isset($_GET['target']) ? urldecode($_GET['target']) : false)
$uri->value))); $uri->value)));
// Yggdrasil url only // Yggdrasil url only
if (!preg_match(YGGDRASIL_URL_REGEX, $url)) if (!preg_match(YGGDRASIL_HOST_REGEX, $url))
{ {
continue; continue;
} }
@ -547,7 +547,7 @@ switch (isset($_GET['target']) ? urldecode($_GET['target']) : false)
$uri->value))); $uri->value)));
// Yggdrasil url only // Yggdrasil url only
if (!preg_match(YGGDRASIL_URL_REGEX, $url)) if (!preg_match(YGGDRASIL_HOST_REGEX, $url))
{ {
continue; continue;
} }
@ -567,7 +567,7 @@ switch (isset($_GET['target']) ? urldecode($_GET['target']) : false)
case 'new': case 'new':
// Yggdrasil connections only // Yggdrasil connections only
if (!preg_match(YGGDRASIL_URL_REGEX, $_SERVER['REMOTE_ADDR'])) if (!preg_match(YGGDRASIL_HOST_REGEX, $_SERVER['REMOTE_ADDR']))
{ {
$response->success = false; $response->success = false;
$response->message = _('Yggdrasil connection required for this action'); $response->message = _('Yggdrasil connection required for this action');
@ -659,7 +659,7 @@ switch (isset($_GET['target']) ? urldecode($_GET['target']) : false)
{ {
if ($url = Yggverse\Parser\Url::parse($tr)) if ($url = Yggverse\Parser\Url::parse($tr))
{ {
if (preg_match(YGGDRASIL_URL_REGEX, str_replace(['[',']'], false, $url->host->name))) if (preg_match(YGGDRASIL_HOST_REGEX, str_replace(['[',']'], false, $url->host->name)))
{ {
$db->initMagnetToAddressTrackerId( $db->initMagnetToAddressTrackerId(
$magnetId, $magnetId,
@ -685,7 +685,7 @@ switch (isset($_GET['target']) ? urldecode($_GET['target']) : false)
{ {
if ($url = Yggverse\Parser\Url::parse($as)) if ($url = Yggverse\Parser\Url::parse($as))
{ {
if (preg_match(YGGDRASIL_URL_REGEX, str_replace(['[',']'], false, $url->host->name))) if (preg_match(YGGDRASIL_HOST_REGEX, str_replace(['[',']'], false, $url->host->name)))
{ {
$db->initMagnetToAcceptableSourceId( $db->initMagnetToAcceptableSourceId(
$magnetId, $magnetId,
@ -705,7 +705,7 @@ switch (isset($_GET['target']) ? urldecode($_GET['target']) : false)
{ {
if ($url = Yggverse\Parser\Url::parse($xs)) if ($url = Yggverse\Parser\Url::parse($xs))
{ {
if (preg_match(YGGDRASIL_URL_REGEX, str_replace(['[',']'], false, $url->host->name))) if (preg_match(YGGDRASIL_HOST_REGEX, str_replace(['[',']'], false, $url->host->name)))
{ {
$db->initMagnetToExactSourceId( $db->initMagnetToExactSourceId(
$magnetId, $magnetId,

15
src/public/download.php

@ -31,7 +31,7 @@ $response = (object)
]; ];
// Yggdrasil connections only // Yggdrasil connections only
if (!preg_match(YGGDRASIL_URL_REGEX, $_SERVER['REMOTE_ADDR'])) if (!preg_match(YGGDRASIL_HOST_REGEX, $_SERVER['REMOTE_ADDR']))
{ {
$response->success = false; $response->success = false;
$response->message = _('Yggdrasil connection required for this action'); $response->message = _('Yggdrasil connection required for this action');
@ -123,8 +123,8 @@ $response = (object)
$host->value, $host->value,
$uri->value))); $uri->value)));
// Yggdrasil url only // Yggdrasil host only
if (!preg_match(YGGDRASIL_URL_REGEX, $url)) if (!preg_match(YGGDRASIL_HOST_REGEX, str_replace(['[',']'], false, $host->value)))
{ {
continue; continue;
} }
@ -154,9 +154,8 @@ $response = (object)
$uri->value) : sprintf('%s://%s%s', $scheme->value, $uri->value) : sprintf('%s://%s%s', $scheme->value,
$host->value, $host->value,
$uri->value))); $uri->value)));
// Yggdrasil host only
// Yggdrasil url only if (!preg_match(YGGDRASIL_HOST_REGEX, str_replace(['[',']'], false, $host->value)))
if (!preg_match(YGGDRASIL_URL_REGEX, $url))
{ {
continue; continue;
} }
@ -181,8 +180,8 @@ $response = (object)
$host->value, $host->value,
$uri->value))); $uri->value)));
// Yggdrasil url only // Yggdrasil host only
if (!preg_match(YGGDRASIL_URL_REGEX, $url)) if (!preg_match(YGGDRASIL_HOST_REGEX, str_replace(['[',']'], false, $host->value)))
{ {
continue; continue;
} }

8
src/public/edit.php

@ -140,7 +140,7 @@ $response = (object)
]; ];
// Yggdrasil connections only // Yggdrasil connections only
if (!preg_match(YGGDRASIL_URL_REGEX, $_SERVER['REMOTE_ADDR'])) if (!preg_match(YGGDRASIL_HOST_REGEX, $_SERVER['REMOTE_ADDR']))
{ {
$response->success = false; $response->success = false;
$response->message = _('Yggdrasil connection required to enable resource features'); $response->message = _('Yggdrasil connection required to enable resource features');
@ -370,7 +370,7 @@ else {
{ {
if ($url = Yggverse\Parser\Url::parse($tr)) if ($url = Yggverse\Parser\Url::parse($tr))
{ {
if (preg_match(YGGDRASIL_URL_REGEX, str_replace(['[',']'], false, $url->host->name))) if (preg_match(YGGDRASIL_HOST_REGEX, str_replace(['[',']'], false, $url->host->name)))
{ {
$db->initMagnetToAddressTrackerId( $db->initMagnetToAddressTrackerId(
$magnet->magnetId, $magnet->magnetId,
@ -406,7 +406,7 @@ else {
{ {
if ($url = Yggverse\Parser\Url::parse($as)) if ($url = Yggverse\Parser\Url::parse($as))
{ {
if (preg_match(YGGDRASIL_URL_REGEX, str_replace(['[',']'], false, $url->host->name))) if (preg_match(YGGDRASIL_HOST_REGEX, str_replace(['[',']'], false, $url->host->name)))
{ {
$db->initMagnetToAcceptableSourceId( $db->initMagnetToAcceptableSourceId(
$magnet->magnetId, $magnet->magnetId,
@ -442,7 +442,7 @@ else {
{ {
if ($url = Yggverse\Parser\Url::parse($xs)) if ($url = Yggverse\Parser\Url::parse($xs))
{ {
if (preg_match(YGGDRASIL_URL_REGEX, str_replace(['[',']'], false, $url->host->name))) if (preg_match(YGGDRASIL_HOST_REGEX, str_replace(['[',']'], false, $url->host->name)))
{ {
$db->initMagnetToExactSourceId( $db->initMagnetToExactSourceId(
$magnet->magnetId, $magnet->magnetId,

2
src/public/index.php

@ -51,7 +51,7 @@ $response = (object)
]; ];
// Yggdrasil connections only // Yggdrasil connections only
if (!preg_match(YGGDRASIL_URL_REGEX, $_SERVER['REMOTE_ADDR'])) if (!preg_match(YGGDRASIL_HOST_REGEX, $_SERVER['REMOTE_ADDR']))
{ {
$response->success = false; $response->success = false;
$response->message = _('Yggdrasil connection required to enable resource features'); $response->message = _('Yggdrasil connection required to enable resource features');

2
src/public/magnet.php

@ -41,7 +41,7 @@ $response = (object)
]; ];
// Yggdrasil connections only // Yggdrasil connections only
if (!preg_match(YGGDRASIL_URL_REGEX, $_SERVER['REMOTE_ADDR'])) if (!preg_match(YGGDRASIL_HOST_REGEX, $_SERVER['REMOTE_ADDR']))
{ {
$response->success = false; $response->success = false;
$response->message = _('Yggdrasil connection required to enable resource features'); $response->message = _('Yggdrasil connection required to enable resource features');

2
src/public/node.php

@ -26,7 +26,7 @@ $response = (object)
]; ];
// Yggdrasil connections only // Yggdrasil connections only
if (!preg_match(YGGDRASIL_URL_REGEX, $_SERVER['REMOTE_ADDR'])) if (!preg_match(YGGDRASIL_HOST_REGEX, $_SERVER['REMOTE_ADDR']))
{ {
$response->success = false; $response->success = false;
$response->message = _('Yggdrasil connection required for this action'); $response->message = _('Yggdrasil connection required for this action');

Loading…
Cancel
Save