HEX
Server: Apache
System: Linux uyu7574470001-7d78c9ff74-xfpwm 4.19.91-21.al7.x86_64 #1 SMP Wed Sep 2 19:47:49 CST 2020 x86_64
User: ()
PHP: 7.4.16
Disabled: chmod,exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,dl,popen,pcntl_exec,socket_accept,socket_bind,socket_clear_error,socket_close,socket_connect,socket_create_listen,socket_create_pair,socket_create,socket_get_option,socket_getpeername,socket_getsockname,socket_last_error,socket_listen,socket_read,socket_recv,socket_recvfrom,socket_select,socket_send,socket_sendto,socket_set_block,socket_set_nonblock,socket_set_option,socket_shutdown,socket_strerror,socket_write,stream_socket_client,stream_socket_server,pfsockopen,disk_total_space,disk_free_space,chown,diskfreespace,getrusage,get_current_user,getmyuid,getmypid,dl,leak,listen,chgrp,link,symlink,dlopen,proc_nice,proc_get_stats,proc_terminate,shell_exec,sh2_exec,posix_getpwuid,posix_getgrgid,posix_kill,ini_restore,mkfifo,dbmopen,dbase_open,filepro,filepro_rowcount,posix_mkfifo,putenv,sleep,fsockopen
Upload Files
File: /usr/home/uyu7574470001/htdocs/wp-content/plugins/wp-table-builder/inc/Utils/RenderUtils.php
<?php

namespace WPTableBuilder\Utils;

use HTMLPurifier;
use HTMLPurifier_Config;

class RenderUtils
{
    public static function generate_css_string($styles)
    {
        $css_string = '';

        foreach ($styles as $key => $value) {
            if (trim($value) !== '') {
                $css_string .= $key . ': ' . $value . '; ';
            }
        }

        return esc_attr($css_string);
    }

    public static function generate_attrs_string($attrs)
    {
        $attrs_string = '';
        foreach ($attrs as $key => $value) {
            if ($value !== false) {
                $attrs_string .= $key . '="' . esc_attr($value) . '" ';
            }
        }
        return $attrs_string;
    }

    public static function get_icon($name)
    {
        $path = WPTB_PLUGIN_DIR . '/assets/icons/' . $name . '.svg';
        if (file_exists($path)) {
            return file_get_contents($path);
        }
        return '';
    }

    public static function esc_url($url)
    {
        if (!$url) {
            return '#';
        }
        return \esc_url($url);
    }

    public static function strip_xss($html)
    {
        if (!$html) {
            return '';
        }
    
        $config = HTMLPurifier_Config::createDefault();
    
        $config->set('HTML.Allowed', implode(',', [
            'b[class]', 'strong[class]', 'i[class]', 'em[class]', 'u[class]', 's[class]',
            'p[class|style]', 'br',
            'ul[class]', 'ol[class]', 'li[class]',
            'span[class]',
            'a[href|target|rel|class]', 
            'button[type|class]', 'div[class]',
            'iframe[src|width|height|frameborder|allowfullscreen|class]',
            'img[src|width|height|class]',
            'table[class]', 'caption[class]',
            'thead[class]', 'tbody[class]', 'tfoot[class]', 'tr[class]',
            'td[colspan|rowspan|class]', 'th[colspan|rowspan|scope|class]',
            'colgroup[span|class]', 'col[span|class]',
            'form[class]', 'input[type|class]', 'textarea[class]', 'select[class]', 'option[class]',
            'fieldset[class]', 'legend[class]',
            'hr[class]',
        ]));
    
        $config->set('URI.AllowedSchemes', [
            'http'   => true,
            'https'  => true,
            'mailto' => true,
            'tel'    => true,
        ]);

        $config->set('HTML.SafeIframe', true);
    
        $config->set('URI.SafeIframeRegexp', 
            '#^https://(www\.)?(youtube\.com/embed/|youtube-nocookie\.com/embed/)#'
        );
        
        $config->set('CSS.AllowedProperties', ['text-align']);

        $config->set('HTML.TargetBlank', true);

        $config->set('HTML.Forms', true);

        $cache_path = __DIR__ . '/htmlpurifier-cache';

        if (!file_exists($cache_path)) {
            @mkdir($cache_path, 0755, true);
        }

        if (!is_dir($cache_path) || !is_writable($cache_path)) {
            $cache_path = sys_get_temp_dir() . '/wptb-htmlpurifier-cache';
        }


        $config->set('Cache.SerializerPath', $cache_path);

        $config->set('HTML.DefinitionID', 'wptb-custom');
        $config->set('HTML.DefinitionRev', 1);

        if ($def = $config->maybeGetRawHTMLDefinition()) {
            $def->addElement('button', 'Inline', 'Inline', 'Common', [
                'type' => 'Enum#button,submit,reset',
            ]);
        }
    
        $purifier = new HTMLPurifier($config);
    
        return $purifier->purify($html);
    }



}