Plugin Directory

Changeset 2891193


Ignore:
Timestamp:
03/31/2023 11:18:58 AM (3 years ago)
Author:
supportcandy
Message:

esc_sql in parse user filters

File:
1 edited

Legend:

Unmodified
Added
Removed
  • supportcandy/trunk/includes/class-wpsc-functions.php

    r2887316 r2891193  
    134134         */
    135135        public static function parse_user_filters( $class, $filters ) {
     136
     137            global $wpdb;
    136138
    137139            // Invalid filter.
     
    180182                            break;
    181183                        }
    182                         $filter_str[] = $slug . ' ' . $compare . ' \'' . $val . '\'';
     184                        $filter_str[] = $slug . ' ' . $compare . ' \'' . esc_sql( $val ) . '\'';
    183185                        break;
    184186
    185187                    case 'BETWEEN':
    186                         $filter_str[] = $slug . ' BETWEEN \'' . $val[0] . '\' AND \'' . $val[1] . '\'';
     188                        $filter_str[] = $slug . ' BETWEEN \'' . esc_sql( $val[0] ) . '\' AND \'' . esc_sql( $val[1] ) . '\'';
    187189                        break;
    188190
     
    193195                            foreach ( $val as $match ) {
    194196
    195                                 $rlike[] = $slug . ' RLIKE \'(^|[|])' . $match . '($|[|])\'';
     197                                $rlike[] = $slug . ' RLIKE \'(^|[|])' . esc_sql( $match ) . '($|[|])\'';
    196198                            }
    197199                            $filter_str[] = '( ' . implode( ' OR ', $rlike ) . ' )';
     
    199201                        } else {
    200202
    201                             $filter_str[] = $slug . ' IN ( \'' . implode( '\', \'', $val ) . '\' )';
     203                            $filter_str[] = $slug . ' IN ( \'' . implode( '\', \'', esc_sql( $val ) ) . '\' )';
    202204                        }
    203205                        break;
     
    209211                            foreach ( $val as $match ) {
    210212
    211                                 $rlike[] = $slug . ' NOT RLIKE \'(^|[|])' . $match . '($|[|])\'';
     213                                $rlike[] = $slug . ' NOT RLIKE \'(^|[|])' . esc_sql( $match ) . '($|[|])\'';
    212214                            }
    213215                            $filter_str[] = '( ' . implode( ' OR ', $rlike ) . ' )';
     
    215217                        } else {
    216218
    217                             $filter_str[] = $slug . ' NOT IN ( \'' . implode( '\', \'', $val ) . '\' )';
     219                            $filter_str[] = $slug . ' NOT IN ( \'' . implode( '\', \'', esc_sql( $val ) ) . '\' )';
    218220                        }
    219221                        break;
     
    228230
    229231                    case 'LIKE':
    230                         $filter_str[] = $slug . ' ' . $compare . ' \'%' . $val . '%\'';
     232                        $filter_str[] = $slug . ' ' . $compare . ' \'%' . esc_sql( $wpdb->esc_like( $val ) ) . '%\'';
    231233                        break;
    232234                }
     
    253255            }
    254256
    255             $order = isset( $filter['order'] ) && $filter['order'] ?
     257            $order = isset( $filter['order'] ) && $filter['order'] && in_array( $filter['order'], array( 'ASC', 'DESC' ) ) ?
    256258                $filter['order'] : 'ASC';
    257259
Note: See TracChangeset for help on using the changeset viewer.