Ответы пользователя по тегу JavaScript
  • Как на nodejs правильно подтверждать платежи?

    AntiStream
    @AntiStream
    Потоковый программист
    Прям ответа дать не могу, но могу поделиться некоторыми соображениями:
    1. Уйти от использования Passport.js, написать своё решение, так как использование стандартных модулей для авторизации уже само по себе не безопасно.
    2. Вы же логируете все действия пользователей, которые связаны с финансами?
    3. Данные от пользователя валидируются на стороне бакенда, при создании пополнения?
    4. Задайте себе вопрос, вы уверены в своей платёжной системе?
    5. Возможно у кого то есть доступ к БД
    Ответ написан
  • Корректно ли работает SSR в этом примере?

    AntiStream
    @AntiStream
    Потоковый программист
    Судя по тому, что возвращает curl, данные для бота будут так-же каждый раз разные...
    5f15c453e3686952298699.png

    Кстати использовать SSR не обязательно, можно просто собрать SPA приложение и отдавать его через nginx, а для ботов сделать отдельное пререндер приложение на основе модуля prerender (https://www.npmjs.com/package/prerender), для которого надо в nginx прописать, чтобы боты отправлялись на пререндер приложение. Ниже описаны правила nginx, для пререндер приложения, которое работает на 3000 порту:
    upstream prerender_server {
        server 127.0.0.1:3000;
        keepalive 8;
    }
    
    server {
    
        location / {        
            set $prerender 0;
    
            if ($http_user_agent ~* "googlebot|bingbot|yandex|baiduspider|twitterbot|facebookexternalhit|rogerbot|linkedinbot|embedly|quora link preview|showyoubot|outbrain|pinterest\/0\.|pinterestbot|slackbot|vkShare|W3C_Validator|whatsapp") {
                set $prerender 1;
            }
            if ($args ~ "_escaped_fragment_") {
                set $prerender 1;
            }
            if ($http_user_agent ~ "Prerender") {
                set $prerender 0;
            }
            if ($uri ~* "\.(js|css|xml|less|png|jpg|jpeg|gif|pdf|doc|txt|ico|rss|zip|mp3|rar|exe|wmv|doc|avi|ppt|mpg|mpeg|tif|wav|mov|psd|ai|xls|mp4|m4a|swf|dat|dmg|iso|flv|m4v|torrent|ttf|woff|svg|eot)") {
                set $prerender 0;
            }
     
            if ($prerender = 1) {
                rewrite .* /render?url=$scheme://$host$request_uri break;
                proxy_pass http://prerender_server;
            }
        }
    
    }


    Тогда можно будет зайти на сайт с параметром "?_escaped_fragment_", и увидеть то, что уведет бот.
    Ответ написан
    Комментировать
  • Как узнать истинный цвет фона элемента? С учётом всех родителей, у которых могут быть полу прозрачные цвета фона?

    AntiStream
    @AntiStream Автор вопроса
    Потоковый программист
    Нашёл решение: https://jsfiddle.net/5ptdk7sv/

    Всем спасибо, ответы помогли мне направить поиски в правильном направлении :)
    Ответ написан
    Комментировать
  • Как находить задачи?

    AntiStream
    @AntiStream
    Потоковый программист
    То есть это как, желание что то делать есть, а идей что можно сделать нет, так что ли? Нее, так не пойдёт, всё в этом мире делается если поставить цель и стремится выполнить её, если вы сами не решите, что вам нужно делать, то за вас это если и будут решать, то только если в этом будет кому то выгода. Если сами для себя не можете решить, что вам нужно делать, то почему это должны решать за вас другие? Ведь эти же решения должен кто то принять, если их не кто не будет принимать, то от куда же они будут браться в мире. Цель должна быть своя, если брать цель из другого источника, то это получается будет чужая цель, зачем работать на чужие цели, если можно работать на свои. Вариантов что можно сделать масса, сайт, блог, лендинг, игра, магазин и все возможные вариации этого и всего иного прочего, а способы и масштабы реализации ограничены только вашей фантазией и желанием это делать, но главное это поставить цель! То финальное состояние, к которому нужно стремится в реализации чего бы то не было.
    Ответ написан
    Комментировать
  • Почему числа в JS такие странные?

    AntiStream
    @AntiStream
    Потоковый программист
    Это информатику надо учить, чтобы понять. Числа с запятой хранится в типах данных в 32 и 64 бита (float и double), и у этих типов данные есть соответственно 2^32 и 2^64 возможных состояний. В целых числах у каждого значения есть чёткое состояние. В плавающих числах эти состояния те же самые, что и в целых, но просто они как бы растянуты по алгебраическому представлению, из-за чего и страдает точность. Для примера, если в консоли сделать 1e128+1, то получите всё тоже 1e128 потому, как нету в типе данных такого состояния, которое могло хотя бы округлённо представлять 1e128+1. Даже более того -- если сделать 1e128+1e111, то этого тоже будет не достаточно для изменения состояния 1e128, но при уже 1e128+1e112 получится изменённое состояние : 1.0000000000000003e+128 Компьютер считает не арифметическими числами, а матричными состояниями битов информации.
    Ответ написан
    1 комментарий
  • Общеразвивающий скриптовый ООП язык - что взять для саморазвития?

    AntiStream
    @AntiStream
    Потоковый программист
    Тут надо прежде всего понять, что ЭВМ всё оперирует матрицами возможных состояний. Например бит - это матрица из двух возможных состояний, байт это уже 256 состояний, int и float это 2^32 возможных состояний . Все типы данных - будь то числа либо строки либо объекты, это матрицы из битов информации. А программист, это тот кто определяет структуру этих матриц, и создаёт под них логики работы ЭВМ - где это будет использоваться для выполнения поставленной задачи. И тут по сути не особо важно какой язык и стиль программирования выбрать - всё это будут разные способы создания управляющего сценария для работы ЭВМ. А если выбирать, то лучше выбирать из расчёта того, что больше нравиться и на что больше спрос - сейчас это вроде JS.
    Ответ написан