Поддержка Плагины Дезинфекция, чтобы модераторам нравилось.

  • Прохожу модерацию очередного плагина. Было:
    $xfavi_cat_meta = array_map('trim', $_POST['xfavi_cat_meta']);
    модератор вп сказал, мол так небезопасно. Переделали так:
    $xfavi_cat_meta = array_map('trim', sanitize_text_field($_POST['xfavi_cat_meta']));
    Но так не работает (( неправильно сохраняет данные.

    Вообще какая-то странность. Если форма расположена в админке плагина вп, то предполагается, что у юзера уже есть права. Мы их проверили через current_user_can.
    А раз они у него есть, то это не хакер. А если хакер, то нафига еще дезинфекции лишние? Это уже не поможет)

    В общем подскажите, как мне правильно поправить строку, чтобы нифига не ломалось.

    Целиком кусок кода такой:

    $xfavi_cat_meta = array_map('trim', $_POST['xfavi_cat_meta']);
    foreach($xfavi_cat_meta as $key => $value){
    	if(empty($value)){
    		delete_term_meta($term_id, $key);
    		continue;
    	}
    	update_term_meta($term_id, $key, $value);
    }
Просмотр 2 ответов — с 1 по 2 (всего 2)
  • $xfavi_cat_meta = array_map('sanitize_text_field', $_POST['xfavi_cat_meta']);
    foreach($xfavi_cat_meta as $key => $value){
    	if(empty($value)){
    		delete_term_meta($term_id, $key);
    		continue;
    	}
    	update_term_meta($term_id, $key, $value);
    }

    Ну а вообще конечно странно, что не пропускают из-за этого плагин.

    Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Но так не работает (( неправильно сохраняет данные.

    sanitize_text_field() принимает и возвращает строку, а не массив.

    нафига еще дезинфекции лишние?

    Например, чтобы автор не получил права администратора.

    Ну а вообще конечно странно, что не пропускают из-за этого плагин.

    Если пропустить — при любых найденных уязвимостях начинается «#$%, сайт взломан, как такое попало в каталог, куда же смотрели модераторы?».

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Дезинфекция, чтобы модераторам нравилось.» закрыта для новых ответов.