Масове завдання

Масове завдання

Два додаткові ключі JSON, а баланс встановлюєте ви.

Що таке Масове завдання?

API копіює кожне поле в тілі запиту у внутрішній об’єкт без списку полів, які може встановити клієнт. Жетон є чесним, а запис належить абоненту. Чого не вистачає, так це контролю на рівні поля. Ви надішлете звичайне оновлення профілю, потім те саме оновлення з двома додатковими ключами JSON, і сервер записує обидва. Виправлення зчитує лише поля, які має змінити редагування профілю. Перевірка права власності або рольовий охоронець не можуть усунути розрив на рівні поля.

Що ви дізнаєтесь у Масове завдання

Масове завдання — Кроки навчання

  1. Рядовий член

    Perklane – це додаток для роздрібних винагород: учасники заробляють бали за покупки та обмінюють їх на подарункові картки в додатку. Боб зареєструвався як звичайний учасник із одноразовою ідентифікацією, щоб побачити, як далеко може просунутися звичайний обліковий запис. Його обліковий запис не є чимось особливим: звичайне учасникське місце з маркером, який читає та редагує його власний профіль. Він відкриває консоль розробника, щоб побачити, що дає йому API облікового запису.

  2. Один предмет, два види поля

    Картка профілю Боба показує поля, які програма дозволяє йому редагувати, а поруч із ними значення, які програма зберігає про нього. Посилання на API показує, як програма читає та зберігає цей профіль.

  3. Читати його власний профіль

    Спочатку Боб викликає кінцеву точку так, як вона призначена для використання: він запитує API про свій власний профіль, переносячи свій власний маркер члена в заголовок авторизації, точно так само, як це робить програма.

  4. Його профіль, кожна сфера

    Сервер повертає саме те, що повинен: власний профіль Боба, оскільки він попросив власний запис із власним маркером. Тут немає нічого поганого. Але на форму платівки варто придивитися.

  5. Зробіть нормальне редагування

    Боб спочатку використовує цю функцію за призначенням: звичайне редагування профілю. Він перемикає запит на метод збереження та надсилає нове відображуване ім’я та аватар, два поля, які насправді пропонує форма профілю.

  6. Редагування займає

    Збереження спрацювало. Відображуване ім’я та аватар змінилися, а все інше залишилося на місці.

  7. Перегляньте редагування в його профілі

    Перш ніж просувати далі, Боб робить те, що зробив би будь-який учасник після збереження: він перезавантажує сторінку свого облікового запису. Що б збереження не написав у свій запис, сторінка читає у відповідь.

  8. Додайте поля, які форма ніколи не показує

    Той самий запит, той же маркер, та сама кінцева точка. Боб зберігає своє відображуване ім’я та аватар у тілі та додає ще два ключі, точні назви полів, які йому передав виклик читання: баланс балів і рівень. Якщо збереження об’єднує все, що отримує, воно також записує ці.

  9. Баланс він так і не заробив

    Це зайняло все це. У власному профілі Боба тепер зазначено, що він має півмільйона балів і платиновий рівень, встановлений лише двома додатковими ключами в редагуванні профілю.

  10. Дивіться це в його профілі

    API повернув 200, але Боб хоче бачити це так, як будь-який учасник. Він перезавантажує консоль власного облікового запису: все, що записав збереження в його запис, сторінка прочитає у відповідь.

Охоплення стандартів безпеки

OWASP API Top 10

  • API6:2019 Mass Assignment

CWE

  • CWE-915 Improperly Controlled Modification of Dynamically-Determined Object Attributes

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security