Plugin Directory

Changeset 3213615


Ignore:
Timestamp:
12/27/2024 04:46:24 AM (15 months ago)
Author:
coolcoders
Message:

Layout filtered for external code insertions

Location:
events-calendar-for-google/trunk
Files:
1 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • events-calendar-for-google/trunk/README.txt

    r3213035 r3213615  
    7878
    7979== Changelog ==
    80 <h2> Version 3.0.0| 24 Dec 2024 </h2>
     80<h2> Version 3.0.0| 26 Dec 2024 </h2>
    8181<pre>
     82 improvement: Layout filtered againt security issues.
    8283 Improvement: Sanitization of code againts external attacks.
    8384 Improvement: Removed Cmb2 dependency of plugin .
  • events-calendar-for-google/trunk/public/class-events-calendar-for-google-public.php

    r3213035 r3213615  
    350350            $events = $template_function->ECFG_get_calender_events();
    351351            $total_events = count($events);
     352            $allowed_layouts = ['list', 'grid', 'google_calendar'];
    352353           
    353354            if($total_events == 0)
     
    381382                        }
    382383                               
    383                         else{
     384                        else {
    384385                           
    385386                            $output.='<div id="ecfg_events_wrap" class="the_gc_event_'.$layout.'">';
    386                                            
    387                             for($i = 0; $i < $events_to_show; $i++)
    388                             {
    389                                 $start_date = $events[$i]['start_date'];
    390                                 $end_date = $events[$i]['end_date'];
    391                                 $event_timezone = $events[$i]['timezone'];
    392                                 $event_title = sanitize_text_field($events[$i]['name']);
    393                                 $event_content = wp_kses_post($events[$i]['description']);
    394                                 $event_location = wp_kses_post($events[$i]['location']);
    395                                 $event_link = esc_url_raw($events[$i]['link']);
    396                                 $alldayevent = $events[$i]['all_day'];
     387                                if (in_array($layout, $allowed_layouts))
     388                                {                   
     389                                for($i = 0; $i < $events_to_show; $i++)
     390                                {
     391                                    $start_date = $events[$i]['start_date'];
     392                                    $end_date = $events[$i]['end_date'];
     393                                    $event_timezone = $events[$i]['timezone'];
     394                                    $event_title = sanitize_text_field($events[$i]['name']);
     395                                    $event_content = wp_kses_post($events[$i]['description']);
     396                                    $event_location = wp_kses_post($events[$i]['location']);
     397                                    $event_link = esc_url_raw($events[$i]['link']);
     398                                    $alldayevent = $events[$i]['all_day'];
     399                                   
     400                                    ob_start();
     401                                    include plugin_dir_path( dirname( __FILE__ ) ). 'includes/templates/'.$layout.'.php';
     402                                    $file_included = ob_get_contents();
     403                                    ob_end_clean();
     404                                    $output.= $file_included; 
     405                                }/*end for loop*/   
     406                                $output.='</div>'; 
    397407                               
    398                                 ob_start();
    399                                 include plugin_dir_path( dirname( __FILE__ ) ). 'includes/templates/'.$layout.'.php';
    400                                 $file_included = ob_get_contents();
    401                                 ob_end_clean();
    402                                 $output.= $file_included; 
    403                             }/*end for loop*/   
    404                             $output.='</div>'; 
    405                            
    406                             $output.='<div class="gc_load_more_events" style="display:'.$show_pagination.'">'.$paginate.'</div>';               
    407                        
     408                                $output.='<div class="gc_load_more_events" style="display:'.$show_pagination.'">'.$paginate.'</div>';               
     409                                } /*proceed if it is on allowed list of layout*/ 
     410                                else
     411                                {
     412                                    $output.= '<p>Invalid layout specified.</p>';
     413                                }                               
    408414                            }/*end for layout condition*/
    409415                       
Note: See TracChangeset for help on using the changeset viewer.