Защита лайков от накрутки, localStorage

311
16 января 2017, 21:27

Возникла небольшая проблема. Ниже приведен скрипт, который обрабатывает клик на кнопку лайк и затем создает объект в localStorage + делает кнопку лайк неактивной. По идее, при следующем клике скрипт должен проверять наличие объекта 'like' в localStorage и если он там есть, оставлять кнопку неактивной, но как всегда что-то пошло не так и при каждом обновлении старницы кнопку лайк все еще можно кликать.

    $('.likes-button').click(function () {
            if (localStorage.getItem("like" === true)) {
                $('.likes-button').attr("disabled", true).css({
                      'cursor': 'default', 
                      'color': 'gray'
                });
        }

      var bkid;
      bkid = $(this).attr("data-ansid");
      $.get('/add_like/', {book_id: bkid}, function (data) {
        $('#like_count').html(data);
        $('.likes-button').attr("disabled", true).css({
              'cursor': 'default', 
              'color': 'gray'
        });
        var store = localStorage.setItem("like", "already");
    });
});
Answer 1

Без авторизации пользователя Вы не сделаете 100% защиту от накрутки. Есть некоторые вещи, которые могут просто улучшить защиту, К примеру js библиотека fingerprint, настроив ее - у каждого посетителя так сказать будет свой идентификатор в конкретном браузере. Еще есть supercookie, правда они теряют свою силу после ухода flash в прошлое.

Но это все защита от дурака )

Answer 2

Ваш обработчик срабатывает только после нажатия на кнопку. Если загрузить страницу ещё раз, то он не срабатывает. Сделайте проверку при загрузки страницы и выключайте кнопку в ней. Но это не спасёт от накруток.

READ ALSO
Плавная смена background-image

Плавная смена background-image

Как сделать плавную смену картинок фона? Есть вот такой скрипт, но там смена происходит не плавно

1339
Ответ регистрации с сервера на форму через Js/Jq/Ajax

Ответ регистрации с сервера на форму через Js/Jq/Ajax

Есть форма регистрации, данные с этой формы удачно отправляются на сервер, но при отправке - происходит переход на страницу сервера

299
SVG sprite в псевдоэлементе ::before

SVG sprite в псевдоэлементе ::before

Имеется svg спрайт с иконками, как можно реализовать вставку иконку в ::before не отдельным файлом-иконкой *svg, а вытащить уже имеющуюся из спрайта?

462
как в css сменить цвет определенной ссылке?

как в css сменить цвет определенной ссылке?

а точнее <a id="place_coins"> ибо когда я ввожу в css

326