Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (20)

Лучшие ответы пользователя

Все ответы (7)
  • Как сделать правильную авторизацию на Vue.js?

    @ShinShil
    В плане безопасности и токен, и куки равны. Под безопасностью имею ввиду сложность взлома.

    Можно выделить несколько основных отличий:
    1. Куки - хранятся на сервере и на клиенте, токен - хранится на клиенте
    2. Куки привязываются к домену, который авторизовался, а токен нет - это даёт большую гибкость, и она становится необходимостью при разработке распределённых систем.
    3. Токен можно использовать выборочно на запросах, а куки на всех запросах. В случае с куки, это может привести к XSRF атакам, т.к. после авторизации, все запросы будут считаться авторизованными. Например, ты авторизовался на сайте site.com, я отправил тебе письмо с таким тегом:
    <img src="https://site.com/money?money=200&to=me />
    . В результате мне перечислит 200 единиц, т.к. после авторизации с куки, все запросы считаются авторизованными и запрос https://site.com/money?money=200&to=me отработает. Способы защититься от таких атак существуют.

    В последние пару лет токены стали чаще использовать, по трём причинам:
    1. Они stateless, что больше соотвествуют SPA (angular, vue, react) - один из моментов SPA в том, что состояние клиента находится на клиенте.
    2. Гибкость, т.к. токены не привязаны к одному домену
    3. Они набрали популярность))

    За последние два года лично мне не попадалось проектов с куки-авторизацией, стек .net + angular/react

    https://dev.to/spukas/authentication-cookies-vs-to...
    https://stackoverflow.com/questions/17000835/token...
    https://www.linkedin.com/pulse/cookie-vs-token-aut...
    Ответ написан
    4 комментария
  • Как правильно сделать парсер для сайта на JS/jQuery?

    @ShinShil
    Да, парсинг делают через бекенд. Я делал на php. Сначала получал страницу через CURL. Потом парсил с помощью simplehtldom - небольшая библиотека, очень удобная и простая.

    Немного о CURL. Это просто для того чтобы сделать запрос. Ты ведь с компьютера открваешь страницы. Это происходит так: твой компьютер с помощью браузера делает запрос к серверу, тот высылает тебе html код, а браузер просто отображает его.

    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_URL, 'http://forum.antichat.ru/'); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $result = curl_exec($ch); 
    curl_close($ch);


    Выше пример простейшего CURL, в если он подключён, то в $result должна находиться длиннющая строка с html кодом страницы. У него есть много настроек, можно устанавливать различные заголовки, типы запросов и т.п.

    При парсинге выбираешь все ссылки и потом проверяешь аттрибут href.
    Ответ написан
    Комментировать
  • Как настроить JS clearInterval?

    @ShinShil
    Суть js. В js часто функции используются как параметры. Например, функция вызывающая две функции:

    function someFunc(argFunc1, argFunc2) {
         argFunc1();
         argFunc2();
         return 5; //эта функция возвращает число 5
    }
    
    func1() {
        console.log("FUNC 1");
    }
    
    
    func2() {
        console.log("FUNC 2");
    }
    
    Console.log(someFunc(func1, func2));


    Теперь посмотрим на setInterval(func, time). Здесь func - функция, time - время в мс. setInterval создаёт отдельный поток, который каждые time мс запускает на выполнение функцию func. Именно указатель этого потока возвращает функция setInterval.

    Поток с функцией не связан, он только запускает её на выполнение, поэтому Ваш код: clearInterval(go); не имеет смысла. Нужно остановить поток, а не функцию.

    var intervaID = setInterval(go, 1000); //в intervalID помещаем ID исполняющего потока
    var z = 0;
    function go() {
        if(z == 10) {
            clearInterval(intervalID); // останавливаем исполняющий поток
        }else {
            ++z;
        }
    }
    Ответ написан
    Комментировать
  • Как написать условие для использование методов carousel Bootstrap?

    @ShinShil
    Пример кода стоит добавлять в вопрос. Рядом с вопросом в правом нижнем углу есть многоточие. Если на него нажать можно выбрать редактирование.

    Ответ: Bootstrap карусель имеет события, вот пример регистрации функций на события смены слайдов.
    $("#otzyv").on('slide.bs.carousel', function () {
              //вызывается перед сменой слайда
        });
        $("#otzyv").on('slid.bs.carousel', function () {
              //вызывается после смены слайда
        });


    Информация отсюда
    www.w3schools.com/bootstrap/bootstrap_ref_js_carou... здесь посмотрите Carousel Events
    www.w3schools.com/bootstrap/tryit.asp?filename=try...
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (12)