Plugin Directory

Changeset 3760784 for usc-e-shop


Ignore:
Timestamp:
10/23/2026 02:00:50 AM (8 days ago)
Author:
uscnanbu
Message:

ver 2.12.6

Location:
usc-e-shop/trunk
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • usc-e-shop/trunk/classes/cart.class.php

    r3673344 r3760784  
    4444                $_POST = $usces->stripslashes_deep_post( $_POST );
    4545                if ( $_SERVER['HTTP_REFERER'] ) {
    46                         $_SESSION['usces_previous_url'] = esc_url( $_SERVER['HTTP_REFERER'] );
     46                        $_SESSION['usces_previous_url'] = esc_url( wp_validate_redirect( $_SERVER['HTTP_REFERER'], home_url( '/' ) ) );
    4747                } else {
    4848                        $_SESSION['usces_previous_url'] = str_replace( 'https://', 'http://', get_home_url() ) . '/';
  • usc-e-shop/trunk/classes/itemList.class.php

    r3374119 r3760784  
    367367        public function SetTotalRow() {
    368368                global $wpdb;
    369                 $query          = "SELECT COUNT(ID) AS `ct` FROM {$this->table} WHERE post_mime_type = 'item' AND post_type = 'post' AND post_status <> 'trash'";
     369                $query          = "SELECT COUNT(ID) AS `ct` FROM {$this->table} AS `post` WHERE post_mime_type = 'item' AND post_type = 'post' AND post_status <> 'trash'" . $this->get_private_where();
    370370                $res            = $wpdb->get_var( $query );
    371371                $this->totalRow = $res;
    … …  
    373373
    374374        /**
     375         * Condition to exclude private items of other users.
     376         *
     377         * @since 2.12.6
     378         * @return string
     379         */
     380        public function get_private_where() {
     381                global $wpdb;
     382                if ( current_user_can( 'read_private_posts' ) ) {
     383                        return '';
     384                }
     385                return $wpdb->prepare( " AND ( post.post_status <> 'private' OR post.post_author = %d )", get_current_user_id() );
     386        }
     387
     388        /**
    375389         * Where Condition.
    376390         *
    … …  
    378392         */
    379393        public function GetWhere() {
    380                 $sql_where = apply_filters( 'usces_filter_item_class_sql_where', '', $this->searchSql, $this );
     394                $sql_where   = apply_filters( 'usces_filter_item_class_sql_where', '', $this->searchSql, $this );
     395                $sql_private = $this->get_private_where();
    381396                if ( '' != $this->searchSql ) {
    382397                        if ( 'display_status' == $this->arr_search['column'] ) {
    383                                 $str = "WHERE post.post_mime_type = 'item' AND post.post_type = 'post' AND " . $this->searchSql . $sql_where . ' GROUP BY post.ID';
     398                                $str = "WHERE post.post_mime_type = 'item' AND post.post_type = 'post' AND " . $this->searchSql . $sql_private . $sql_where . ' GROUP BY post.ID';
    384399                        } else {
    385                                 $str = "WHERE post.post_mime_type = 'item' AND post.post_type = 'post' AND post.post_status <> 'trash' AND " . $this->searchSql . $sql_where . ' GROUP BY post.ID';
    386                         }
    387                 } else {
    388                         $str = "WHERE post.post_mime_type = 'item' AND post.post_type = 'post' AND post.post_status <> 'trash'" . $sql_where . ' GROUP BY post.ID';
     400                                $str = "WHERE post.post_mime_type = 'item' AND post.post_type = 'post' AND post.post_status <> 'trash' AND " . $this->searchSql . $sql_private . $sql_where . ' GROUP BY post.ID';
     401                        }
     402                } else {
     403                        $str = "WHERE post.post_mime_type = 'item' AND post.post_type = 'post' AND post.post_status <> 'trash'" . $sql_private . $sql_where . ' GROUP BY post.ID';
    389404                }
    390405                return $str;
  • usc-e-shop/trunk/classes/paymentPayPalCP.class.php

    r3743211 r3760784  
    24082408                $response_data = $this->api_create_order( $access_token, $bn_code, '', $tracking_id, $entry, $cart, false );
    24092409                if ( isset( $response_data->id ) ) {
    2410                         $usces->cart->set_order_entry( array( 'paypal_cp_card_resource_id' => $response_data->id ) );
     2410                        $_SESSION['usces_paypal_cp_card_resource_id'] = $response_data->id;
    24112411                }
    24122412                wp_send_json( $response_data );
    … …  
    24992499
    25002500                /* Only an order created in the current shop session can be referenced. */
    2501                 $saved_resource_id = $usces->cart->get_order_entry( 'paypal_cp_card_resource_id' );
     2501                $saved_resource_id = ( isset( $_SESSION['usces_paypal_cp_card_resource_id'] ) ) ? $_SESSION['usces_paypal_cp_card_resource_id'] : '';
    25022502                if ( '' === $resource_id || empty( $saved_resource_id ) || ! hash_equals( (string) $saved_resource_id, $resource_id ) ) {
    25032503                        wp_send_json( array() );
  • usc-e-shop/trunk/classes/paymentZeus.class.php

    r3743211 r3760784  
    78977897                        if ( 'OK' === $result ) {
    78987898                                $query = $wpdb->prepare(
    7899                                         "SELECT * FROM {$wpdb->prefix}usces_acting_log WHERE `tracking_id` = %s AND `result` IN( %s ) ORDER BY `ID` DESC, `datetime` DESC",
    7900                                         $tracking_id,
    7901                                         implode( "','", $this->payment_normal_results )
     7899                                        "SELECT * FROM {$wpdb->prefix}usces_acting_log WHERE `tracking_id` = %s AND `result` IN( " . implode( ',', array_fill( 0, count( $this->payment_normal_results ), '%s' ) ) . ' ) ORDER BY `ID` DESC, `datetime` DESC',
     7900                                        array_merge( array( $tracking_id ), $this->payment_normal_results )
    79027901                                );
    7903                                 $query = stripslashes( $query );
    79047902                        } else {
    79057903                                $query = $wpdb->prepare(
    … …  
    79127910                                if ( 'OK' === $result ) {
    79137911                                        $query = $wpdb->prepare(
    7914                                                 "SELECT * FROM {$wpdb->prefix}usces_acting_log WHERE `datetime` IN( SELECT MAX( `datetime` ) FROM {$wpdb->prefix}usces_acting_log WHERE `order_id` = %d GROUP BY `tracking_id` ) AND `order_id` = %d AND `result` IN( %s ) ORDER BY `ID` DESC, `datetime` DESC",
    7915                                                 $order_id,
    7916                                                 $order_id,
    7917                                                 implode( "','", $this->payment_normal_results )
     7912                                                "SELECT * FROM {$wpdb->prefix}usces_acting_log WHERE `datetime` IN( SELECT MAX( `datetime` ) FROM {$wpdb->prefix}usces_acting_log WHERE `order_id` = %d GROUP BY `tracking_id` ) AND `order_id` = %d AND `result` IN( " . implode( ',', array_fill( 0, count( $this->payment_normal_results ), '%s' ) ) . ' ) ORDER BY `ID` DESC, `datetime` DESC',
     7913                                                array_merge( array( $order_id, $order_id ), $this->payment_normal_results )
    79187914                                        );
    7919                                         $query = stripslashes( $query );
    79207915                                } else {
    79217916                                        $query = $wpdb->prepare(
    … …  
    79287923                                if ( 'OK' === $result ) {
    79297924                                        $query = $wpdb->prepare(
    7930                                                 "SELECT * FROM {$wpdb->prefix}usces_acting_log WHERE `order_id` = %d AND `tracking_id` = %s AND `result` IN( %s ) ORDER BY `ID` DESC, `datetime` DESC",
    7931                                                 $order_id,
    7932                                                 $tracking_id,
    7933                                                 implode( "','", $this->payment_normal_results )
     7925                                                "SELECT * FROM {$wpdb->prefix}usces_acting_log WHERE `order_id` = %d AND `tracking_id` = %s AND `result` IN( " . implode( ',', array_fill( 0, count( $this->payment_normal_results ), '%s' ) ) . ' ) ORDER BY `ID` DESC, `datetime` DESC',
     7926                                                array_merge( array( $order_id, $tracking_id ), $this->payment_normal_results )
    79347927                                        );
    7935                                         $query = stripslashes( $query );
    79367928                                } else {
    79377929                                        $query = $wpdb->prepare(
  • usc-e-shop/trunk/classes/usceshop.class.php

    r3743211 r3760784  
    38823882                }
    38833883
     3884                if ( ! $this->is_member_logged_in() ) {
     3885                        $this->page = 'login';
     3886                        add_action( 'the_post', array( $this, 'action_memberFilter' ) );
     3887                        add_action( 'template_redirect', array( $this, 'template_redirect' ) );
     3888                        return;
     3889                }
     3890
    38843891                global $wp_query;
    38853892                $res = $this->regist_member();
    … …  
    53905397                                        $port = ':' . $parse_url['port'];
    53915398                                }
    5392                                 header( 'location: ' . $parse_url['scheme'] . '://' . $parse_url['host'] . $port . esc_url( $_POST['usces_referer'] ) . apply_filters( 'usces_filter_incart_redirect', '#cart_button', $post_id, $sku ) );
     5399                                $redirect_url = $parse_url['scheme'] . '://' . $parse_url['host'] . $port . esc_url( $_POST['usces_referer'] );
    53935400                        } else {
    5394                                 header( 'location: ' . esc_url( $_POST['usces_referer'] ) . apply_filters( 'usces_filter_incart_redirect', '#cart_button', $post_id, $sku ) );
    5395                         }
     5401                                $redirect_url = esc_url( $_POST['usces_referer'] );
     5402                        }
     5403                        $redirect_url = wp_validate_redirect( $redirect_url, home_url( '/' ) );
     5404                        header( 'location: ' . $redirect_url . apply_filters( 'usces_filter_incart_redirect', '#cart_button', $post_id, $sku ) );
    53965405                        exit;
    53975406                }
    … …  
    55085517                $usces_member_old = $_SESSION['usces_member'];
    55095518                foreach ( $_POST['member'] as $key => $vlue ) {
     5519                        if ( in_array( $key, array( 'ID', 'edit_auth', 'point', 'status', 'registered' ), true ) ) {
     5520                                continue;
     5521                        }
    55105522                        if ( 'password1' !== $key && 'password2' !== $key && 'mailaddress2' !== $key ) {
    55115523                                $_SESSION['usces_member'][ $key ] = trim( $vlue );
  • usc-e-shop/trunk/extensions/VerifyMembersEmail/verify_members_email.php

    r3743211 r3760784  
    7979                                add_action( 'usces_main', array( $this, 'member_auth_first' ), 1 );
    8080                                add_filter( 'usces_filter_template_redirect', array( $this, 'member_auth' ), 1 );
     81                                add_action( 'usces_action_pre_edit_memberdata', array( $this, 'require_edit_auth_before_update' ) );
    8182                                add_action( 'usces_main', array( $this, 'verified_member' ) );
    8283                                add_filter( 'usces_filter_login_inform', array( $this, 'login_inform' ) );
    … …  
    824825
    825826        /**
     827         * Require edit authentication before member data is updated.
     828         * usces_action_pre_edit_memberdata
     829         */
     830        public function require_edit_auth_before_update() {
     831                global $usces;
     832
     833                if ( ! $usces->is_member_page( $_SERVER['REQUEST_URI'] ) ) {
     834                        return;
     835                }
     836                $member = $usces->get_member();
     837                if ( $this->member_auth_check( $member ) ) {
     838                        return;
     839                }
     840                $usces->set_member_session_data( $member['ID'] );
     841                wp_safe_redirect( add_query_arg( 'usces_page', 'member_edit', USCES_MEMBER_URL ) );
     842                exit();
     843        }
     844
     845        /**
    826846         * Authentication mail transmission completion page.
    827847         */
  • usc-e-shop/trunk/functions/define_function.php

    r3673344 r3760784  
    13501350                        $rows                 = $dt->rows;
    13511351
     1352                        // Exclude items that the current user cannot read.
     1353                        foreach ( (array) $rows as $key => $row ) {
     1354                                if ( ! current_user_can( 'read_post', $row['ID'] ) ) {
     1355                                        unset( $rows[ $key ] );
     1356                                }
     1357                        }
     1358
    13521359                        // Processing branch for each mode.
    13531360                        $results = apply_filters( 'usces_filter_item_downloadcsv_mode', array(), $rows, $usces_opt_item );
    … …  
    14641471                                        $line_item .= $td_h . $post->post_status . $td_f;
    14651472                                        $line_item .= $td_h . $post->comment_status . $td_f;
    1466                                         $line_item .= $td_h . $post->post_password . $td_f;
     1473                                        $line_item .= $td_h . ( current_user_can( 'edit_post', $post_id ) ? $post->post_password : '' ) . $td_f;
    14671474                                        $line_item .= $td_h . urldecode( $post->post_name ) . $td_f;
    14681475                                        $line_item .= $td_h . $post->post_date . $td_f;
  • usc-e-shop/trunk/functions/item_post.php

    r3673344 r3760784  
    16181618        $post_id = $inputs['ID'];
    16191619
     1620        // Reading common options is allowed on the item edit screen.
     1621        $is_common_select = ( null === $inputs['update'] && null === $inputs['delete'] && null !== $inputs['select'] && (int) USCES_CART_NUMBER === $post_id );
     1622        if ( ! $is_common_select && ! current_user_can( 'edit_post', $post_id ) ) {
     1623                wp_die( esc_html__( 'You do not have sufficient permissions to access this page.' ) );
     1624        }
     1625
    16201626        if ( null !== $inputs['update'] ) {
    16211627
    … …  
    16691675        $msg     = '';
    16701676
    1671         if ( ! current_user_can( 'wel_publish_products', $post_id ) ) {
     1677        if ( ! current_user_can( 'wel_publish_products' ) || ! current_user_can( 'edit_post', $post_id ) ) {
    16721678                $response = array(
    16731679                        'meta_id'  => 0,
  • usc-e-shop/trunk/functions/settlement_func.php

    r3690880 r3760784  
    786786        $log_table_name = $wpdb->prefix . 'usces_log';
    787787        if ( '' !== $log_key ) {
    788                 $keys  = explode( ':', $log_key );
    789                 $query = $wpdb->prepare( "DELETE FROM {$log_table_name} WHERE `log_type` = 'acting_data' AND `log_key` IN( %s )", implode( "','", $keys ) );
    790                 $query = stripslashes( $query );
     788                $keys = array_filter(
     789                        explode( ':', $log_key ),
     790                        function ( $key ) {
     791                                return '' !== $key;
     792                        }
     793                );
     794                if ( empty( $keys ) ) {
     795                        return 0;
     796                }
     797                $query = $wpdb->prepare( "DELETE FROM {$log_table_name} WHERE `log_type` = 'acting_data' AND `log_key` IN( " . implode( ',', array_fill( 0, count( $keys ), '%s' ) ) . ' )', $keys );
    791798        } else {
    792799                $query = "DELETE FROM {$log_table_name} WHERE `log_type` = 'acting_data'";
    … …  
    10091016        $log_table_name = $wpdb->prefix . 'usces_log';
    10101017        if ( '' !== $log_id ) {
    1011                 $ids   = explode( ':', $log_id );
    1012                 $query = $wpdb->prepare( "DELETE FROM {$log_table_name} WHERE `log_type` = 'acting_error' AND `ID` IN( %s )", implode( "','", $ids ) );
    1013                 $query = stripslashes( $query );
     1018                $ids = array_map( 'intval', array_filter( explode( ':', $log_id ), 'ctype_digit' ) );
     1019                if ( empty( $ids ) ) {
     1020                        return 0;
     1021                }
     1022                $query = $wpdb->prepare( "DELETE FROM {$log_table_name} WHERE `log_type` = 'acting_error' AND `ID` IN( " . implode( ',', array_fill( 0, count( $ids ), '%d' ) ) . ' )', $ids );
    10141023        } else {
    10151024                $query = "DELETE FROM {$log_table_name} WHERE `log_type` = 'acting_error'";
    … …  
    10631072        $exemption      = usces_get_settlement_error_log_exemption();
    10641073        $line           = '';
     1074        $log_data       = array();
    10651075        if ( ! empty( $_GET['log_id'] ) ) {
    1066                 $ids   = explode( ':', wp_unslash( $_GET['log_id'] ) );
    1067                 $query = $wpdb->prepare( "SELECT * FROM {$log_table_name} WHERE `log_type` = 'acting_error' AND `ID` IN( %s )", implode( "','", $ids ) );
    1068                 $query = stripslashes( $query );
     1076                $ids = array_map( 'intval', array_filter( explode( ':', wp_unslash( $_GET['log_id'] ) ), 'ctype_digit' ) );
     1077                if ( ! empty( $ids ) ) {
     1078                        $query    = $wpdb->prepare( "SELECT * FROM {$log_table_name} WHERE `log_type` = 'acting_error' AND `ID` IN( " . implode( ',', array_fill( 0, count( $ids ), '%d' ) ) . ' )', $ids );
     1079                        $log_data = $wpdb->get_results( $query, ARRAY_A );
     1080                }
    10691081        } else {
    1070                 $query = "SELECT * FROM {$log_table_name} WHERE `log_type` = 'acting_error' ORDER BY datetime DESC";
    1071         }
    1072         $log_data = $wpdb->get_results( $query, ARRAY_A );
     1082                $query    = "SELECT * FROM {$log_table_name} WHERE `log_type` = 'acting_error' ORDER BY datetime DESC";
     1083                $log_data = $wpdb->get_results( $query, ARRAY_A );
     1084        }
    10731085        foreach ( (array) $log_data as $data ) {
    10741086                $log   = wel_safe_unserialize( $data['log'] );
  • usc-e-shop/trunk/functions/template_func.php

    r3673344 r3760784  
    32723272                }
    32733273                $value = apply_filters( 'usces_filter_settle_info_field_value', $value, $key, $acting );
     3274                $key   = esc_html( $key );
     3275                $value = esc_html( $value );
    32743276                switch ( $type ) {
    32753277                        case 'nl':
  • usc-e-shop/trunk/includes/delivery_info_script.php

    r3082941 r3760784  
    189189                }
    190190        });
    191         $(document).on( 'blur', '#search_zipcode', function() {
    192                 if( $('#delivery_flag2').prop('checked') && undefined != $('#delivery_pref').get(0) && 0 < $('#delivery_pref').get(0).selectedIndex ) {
    193                         $('#search_zipcode_change').val($('#zipcode').val());
    194                         delivery_pref = $('#delivery_pref').val();
    195                         orderfunc.make_delivery_date(($('#delivery_method_select option:selected').val()-0));
    196                 }
    197         });
     191        if ( 'undefined' !== typeof AjaxZip3 ) {
     192                var prevOnSuccess = AjaxZip3.onSuccess;
     193                AjaxZip3.onSuccess = function() {
     194                        if ( 'function' === typeof prevOnSuccess ) {
     195                                prevOnSuccess.apply( this, arguments );
     196                        }
     197                        $( '#search_zipcode_change' ).val( $( '#zipcode' ).val() );
     198                        $( '#delivery_pref' ).trigger( 'change' );
     199                };
     200        }
    198201
    199202        orderfunc = {
  • usc-e-shop/trunk/includes/product/wel-item-class.php

    r3673344 r3760784  
    10011001                $table        = $wpdb->prefix . 'usces_skus';
    10021002                $placeholders = $this->sku_placeholders;
     1003
     1004                // Do not overwrite SKU data that belongs to another item.
     1005                if ( ! empty( $meta_id ) ) {
     1006                        $owner_id = $wpdb->get_var( $wpdb->prepare( "SELECT `post_id` FROM {$table} WHERE `meta_id` = %d", $meta_id ) );
     1007                        if ( null !== $owner_id && (int) $owner_id !== $this->id ) {
     1008                                return false;
     1009                        }
     1010                }
     1011
    10031012                $res = $wpdb->replace( $table, $new_sku, $placeholders );
    10041013
    … …  
    10861095
    10871096                $table  = $wpdb->prefix . 'usces_skus';
    1088                 $where  = array( 'meta_id' => $meta_id );
    1089                 $format = array( '%d' );
     1097                $where  = array(
     1098                        'meta_id' => $meta_id,
     1099                        'post_id' => $this->id,
     1100                );
     1101                $format = array( '%d', '%d' );
    10901102                $res    = $wpdb->delete( $table, $where, $format );
    10911103
    … …  
    11571169                $placeholders = $this->opt_placeholders;
    11581170
     1171                // Do not overwrite option data that belongs to another item.
     1172                $owner_id = $wpdb->get_var( $wpdb->prepare( "SELECT `post_id` FROM {$table} WHERE `meta_id` = %d", $meta_id ) );
     1173                if ( null !== $owner_id && (int) $owner_id !== $this->id ) {
     1174                        return false;
     1175                }
     1176
    11591177                $res = $wpdb->replace( $table, $new_opt, $placeholders );
    11601178
    … …  
    12121230
    12131231                $table  = $wpdb->prefix . 'usces_opts';
    1214                 $where  = array( 'meta_id' => $meta_id );
    1215                 $format = array( '%d' );
     1232                $where  = array(
     1233                        'meta_id' => $meta_id,
     1234                        'post_id' => $this->id,
     1235                );
     1236                $format = array( '%d', '%d' );
    12161237                $res    = $wpdb->delete( $table, $where, $format );
    12171238
  • usc-e-shop/trunk/includes/product/wel-item-images.php

    r3157932 r3760784  
    392392        $post_id = isset( $_POST['post_id'] ) ? (int) $_POST['post_id'] : 0;
    393393
    394         if ( ! current_user_can( 'wel_publish_products', $post_id ) ) {
     394        if ( ! current_user_can( 'wel_publish_products' ) || ! current_user_can( 'edit_post', $post_id ) ) {
    395395                $arr_res['status'] = false;
    396396                $arr_res['msg']   .= __( 'You are not allowed to edit this item.', 'usces' ) . '<br>';
    … …  
    507507                        $delete_pict_ids = filter_input( INPUT_POST, 'item_pict_ids', FILTER_DEFAULT, FILTER_REQUIRE_ARRAY );
    508508                        $delete_pict_ids = array_map( 'intval', $delete_pict_ids );
    509                         if ( is_array( $delete_pict_ids ) && 0 < count( $delete_pict_ids ) ) {
     509                        $can_delete      = true;
     510                        foreach ( (array) $delete_pict_ids as $del_pict_id ) {
     511                                if ( ! current_user_can( 'delete_post', $del_pict_id ) ) {
     512                                        $can_delete = false;
     513                                        break;
     514                                }
     515                        }
     516                        if ( $can_delete && is_array( $delete_pict_ids ) && 0 < count( $delete_pict_ids ) ) {
    510517                                // update exclude other item product if has.
    511518                                foreach ( $delete_pict_ids as $del_pict_id ) {
    … …  
    729736        $pict_id = (int) filter_input( INPUT_POST, 'pict_id' );
    730737        $value   = filter_input( INPUT_POST, 'value' );
     738        if ( 'attachment' !== get_post_type( $pict_id ) || ! current_user_can( 'edit_post', $pict_id ) ) {
     739                $arr_res['status'] = false;
     740                return;
     741        }
    731742        switch ( $field ) {
    732743                case 'alt':
  • usc-e-shop/trunk/readme.txt

    r3743211 r3760784  
    55Tested up to: 7.1
    66Requires PHP: 7.4
    7 Stable tag: 2.12.5
     7Stable tag: 2.12.6
    88License: GPLv2 or later
    99License URI: https://www.gnu.org/licenses/gpl-2.0.html
    … …  
    7373== Changelog ==
    7474
    75 13 Oct 2026
    76 = V2.12.5 =
     7523 Oct 2026
     76= V2.12.6 =
    7777-----------
    78 * Security enhancement (SQL Injection). Stopped restoring the search condition SQL from the cookie on the old order list screen. Thanks to Wordfence PRISM - Wordfence for the report.
    79 * Security enhancement. [PayPal] The order details request of the credit card payment now returns only the order created in the current session.
    80 * Security enhancement. The member login and the member information update on the cart page are no longer processed when the nonce verification fails while a member is logged in.
    81 * Security enhancement. [Payment For] Added a client IP check to the card payment notification.
    82 * Security enhancement. [ZEUS] The payment amount sent to the payment gateway is now taken from the order data instead of the request parameters.
    83 * Security enhancement. The log of the login attempt limit is now stored in the database instead of a file.
    84 * [Paygent] Fixed the bug that the sending process continued even if the initial setting of the communication failed, and the cause of the error was not displayed correctly.
    85 * [Paygent] Fixed the bug that the payment status on the order list and the order edit screen sometimes did not change to the cleared status after the sales processing.
    86 * Fixed the bug that orders were not displayed on the old order list screen when the filtered result fit on a single page.
     78* Security enhancement (SQL Injection). Fixed the SQL injection in the download and deletion of the payment error log. Thanks to Karthik Ramakrishnan - WPScan for the report.
     79* Security enhancement. The redirect destination after adding an item to the cart is now limited to the own site. Thanks to Jasper Weijts (Onvio Pentesting) - WPScan for the report.
     80* Security enhancement. Added the permission check to the Ajax processing of the item SKU and image on the item edit screen. Thanks to Usama Arshad - WPScan for the report.
     81* Security enhancement (SQL Injection). [ZEUS] Fixed the SQL injection in retrieving the payment information on the order edit screen.
     82* Security enhancement. Added the permission check to the Ajax processing of the item image, SKU and option on the item edit screen.
     83* Security enhancement. The item CSV export no longer includes private items and passwords of other users.
     84* Security enhancement. The return destination of "Continue shopping" on the cart page is now limited to the own site.
     85* Security enhancement (XSS). The values in the payment information field on the order edit screen are now escaped.
     86* Security enhancement. The member information update now updates only the logged-in member, and is no longer applied before the email verification.
     87* Security enhancement. [PayPal] The order ID used to check the order details request of the credit card payment can no longer be overwritten by the request parameters.
     88* Fixed the bug that the desired delivery date was not recalculated after the postal code search on Safari.
    8789
    8890For older versions, please see the [Changelog Archive (Japanese)](https://www.welcart.com/about/changelog/).
  • usc-e-shop/trunk/usc-e-shop.php

    r3743211 r3760784  
    44 * Plugin URI: https://www.welcart.com/
    55 * Description: Welcart builds the management system with a net shop on WordPress.
    6  * Version: 2.12.5
     6 * Version: 2.12.6
    77 * Author: Welcart Inc.
    88 * Author URI: https://www.welcart.com/
    … …  
    1717 */
    1818
    19 define( 'USCES_VERSION', '2.12.5.2610131' );
     19define( 'USCES_VERSION', '2.12.6.2610231' );
    2020define( 'USCES_DB_ACCESS', '1.5' );
    2121define( 'USCES_DB_MEMBER', '1.1' );
Note: See TracChangeset for help on using the changeset viewer.