mirror of
https://github.com/Karaka-Management/Resources.git
synced 2026-01-10 21:08:41 +00:00
47 lines
828 B
PHP
Executable File
47 lines
828 B
PHP
Executable File
<?php
|
|
|
|
namespace Mpdf\File;
|
|
|
|
use Mpdf\Mpdf;
|
|
|
|
final class StreamWrapperChecker
|
|
{
|
|
|
|
private $mpdf;
|
|
|
|
public function __construct(Mpdf $mpdf)
|
|
{
|
|
$this->mpdf = $mpdf;
|
|
}
|
|
|
|
/**
|
|
* @param string $filename
|
|
* @return bool
|
|
* @since 7.1.8
|
|
*/
|
|
public function hasBlacklistedStreamWrapper($filename)
|
|
{
|
|
if (strpos($filename, '://') > 0) {
|
|
$wrappers = stream_get_wrappers();
|
|
$whitelistStreamWrappers = $this->getWhitelistedStreamWrappers();
|
|
foreach ($wrappers as $wrapper) {
|
|
if (in_array($wrapper, $whitelistStreamWrappers)) {
|
|
continue;
|
|
}
|
|
|
|
if (stripos($filename, $wrapper . '://') === 0) {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public function getWhitelistedStreamWrappers()
|
|
{
|
|
return array_diff($this->mpdf->whitelistStreamWrappers, ['phar']); // remove 'phar' (security issue)
|
|
}
|
|
|
|
}
|