Существует множество способов защиты серверов от мошеннических клиентов. В этом конкретном случае «ограничение скорости», вероятно, уместно, когда сервер выбирает максимальное количество операций в минуту от клиента, которое он считает разумным для человека, и когда скорость операций от одного клиента превышает, что он защищает себя , Как он решит защитить себя, зависит. Он может сразу же отказать в каждом новом запросе на некоторое время, чтобы не использовать много ресурсов сервера, он может выйти из системы клиента, он может завершиться с ошибкой или вернуть ошибку.
Серверы должны знать, что настоящая защита от подобных вещей должна быть сделана на сервере, потому что ajax-вызовы могут быть выполнены кем угодно, а не только вашим собственным клиентским кодом.
На клиенте вы можете защитить себя от мошеннического javascript, который вводится несколькими способами. Ниже в вашем коде вы также можете установить ограничение скорости (например, непосредственно перед тем, как совершить реальный вызов ajax) и отказаться от выполнения более чем X вызовов ajax в минуту. Это не полностью защищает ваш сервер, но защищает вас от использования вашей собственной функции AddToCart ().
Или вы можете сделать так, чтобы не было функции глобального пространства имен верхнего уровня, которая не требует параметров, которые можно вызывать таким образом. Вы можете сделать это, либо удалив соответствующую функциональность из глобального пространства имен (сделайте это методом для одного из ваших объектов, который требует правильного указателя «this»), либо вы можете заставить функцию требовать некоторого соответствующего внутреннего состояния, которое не всегда будет известны.
Лично я на самом деле не упал, как будто клиент должен быть защищен от злоупотреблений, которые может причинить его владелец, когда нет законной цели для того, что делается, кроме причинения вреда. Если пользователь хочет делать плохие вещи, которые приводят к краху его собственного клиента, это нормально. Они могут сбить клиента с помощью диспетчера задач, если захотят. Вы действительно хотите защитить его от попадания на сервер плохих вещей и защитить его от всего плохого, что может случиться с законными обычными пользовательскими операциями, но если пользователь захочет отключить свой собственный клиент, я не собираюсь терять сон что.