Возможные проблемы с безопасностью при обработке подписки на моем сайте Wix?

На моем веб-сайте Wix, над которым я сейчас работаю, установлено приложение «Планы ценообразования», и в зависимости от этих планов пользователи могут получить доступ к определенным функциям API, которые я предоставил на веб-сайте, через приложение, которое я разрабатываю. Поскольку я не могу получить пользовательский объект в файле http-functions.js, мне пришлось создать отдельную коллекцию для хранения данных о подписках пользователя. При заказе плана это работает нормально, так как я могу подключиться к событию onPlanPurchased и выполнить любую логику, которая мне нужна, чтобы изменить указанную коллекцию. Однако такого события для отмены плана не существует, что означает, что любая модификация коллекции должна выполняться бэкэнд-функцией, вызываемой из клиентского кода, например:

cancelPlan(wixUsers.currentUser.id)
.then( (results) => {
    if (results === "SUCCESS") {
        wixPaidPlans.cancelOrder(orderId)
        .then( () => {
            wixWindow.openLightbox("PlanCancelled");
        })
        .catch( (err) => {
            wixWindow.openLightbox("PlanCancelFailed");
        });
    }else {
        wixWindow.openLightbox("PlanCancelFailed");
    }
})
.catch( (err) => {
    wixWindow.openLightbox("PlanCancelFailed");
});

Как вы можете видеть, проблема здесь в том, что, поскольку это запускается в браузере, возможно ли, чтобы кто-то изменил это и запустил только строку wixPaidPlans.cancelOrder() без запуска моей внутренней функции? Если это так, кто-то может отменить свой платеж, но по-прежнему иметь доступ к вещам, предлагаемым моим веб-сайтом, через функции API, о которых я говорил. Правильно ли я беспокоюсь об этом? И если да, то есть ли у кого-нибудь какие-либо указатели на то, как еще я мог бы это сделать? Спасибо.

взаимодействует ли метод cancelPlan() с вашим бэкэндом?

WillardSolutions 23.12.2020 20:25

Да, мой метод cancelPlan() находится во внутреннем модуле и изменяет данные в моей коллекции. Если обновление записи пользователя прошло успешно, возвращается сообщение «SUCCESS».

Letal1s 23.12.2020 20:50

Выполните проверку на стороне сервера, чтобы убедиться, что конечная точка не подвергается злонамеренному воздействию.

WillardSolutions 23.12.2020 21:08

Я не могу выполнить проверку на стороне сервера, так как 'wixPaidPlans.cancelOrder()' кажется доступной только на стороне клиента и может быть инициирована только пользователем, тогда мне нужен какой-то способ проверить, была ли модификация коллекции успешной. Или я неправильно понял ваше предложение?

Letal1s 23.12.2020 21:20
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
125
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я забыл об этом вопросе некоторое время назад, но хотел обновить его, так как в итоге нашел решение.

В Wix есть несколько веб-хуков, которые можно использовать для указания на функцию API/HTTP на вашем сайте. Один из этих веб-хуков предназначен для случаев, когда план платежей отменяется. Это событие можно указать на функцию в http-functions.js, и там можно выполнить соответствующую логику, гарантируя, что все может быть выполнено так, как задумано, но процесс также может быть запущен пользователем.

Другие вопросы по теме