• Как обстоят дела SEO с многостраничных приложений на Vue?

    bootd
    @bootd
    Гугли и ты откроешь врата знаний!
    SSR и всё будет как нада
    Ответ написан
    4 комментария
  • Почему гугл не индексирует компоненты VUE?

    dlnsk
    @dlnsk
    ПК Партнер 01.01 -> ПК Поиск -> IBM PC
    А чего вы, собственно, хотели? Боты - они же простые как три рубля. Их задача быстренько индексировать страницу. Представьте сколько нужно ресурсов, чтобы исполнять JS на каждой странице... Да и зачем? Если разработчику нужно индексировать Vue, то он потратит на это свои ресурсы.
    То, о чем вы пишите, называется SSR. Не знаю в каких таких "статьях" вы читали про гугл, но есть официальная дока про SSR на сайте Vue:
    https://ssr.vuejs.org/ru/
    Ответ написан
    Комментировать
  • Стоит ли обычные многостраничные сайты делать с применением Vue?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Не стоит. Но если хотите - главное позаботьтесь о том, чтобы Vue грузился только на той странице/страницах где он реально используется, а не на всех подряд. Кто знает, может у вас там форма обратной связи - это многошаговая форма с кучей полей и массой интерактивности, сохранением прогресса и тд - тогда и смысл использования Vue может быть оправдан, хотя бы частично. Но из фразы "форма обратной связи" мы как бы подозреваем, что там пару простых полей и никакой реактивщины, Vue все-таки будет пушкой по воробьям.
    Ответ написан
    Комментировать
  • Это правда, что селекторы для css (и для scss) лучше называть через тире (.some-div), но не через подчеркивание (.some_div)? Почему так?

    @Lord_Dantes
    В вашем случае some__div можно.
    Почитайте про БЭМ
    Ответ написан
    Комментировать
  • Можно ли использовать при верстке CSS grid и Flexbox?

    bootd
    @bootd Куратор тега CSS
    Гугли и ты откроешь врата знаний!
    Можно, а почему вы решили что нет? Гриды и флексы призваны решать немного разные вещи
    Ответ написан
    3 комментария
  • Как использовать стандартные функции javascript в vue?

    @gribanov2la
    Full stack web разработчик
    Cannot read property 'indexOf' of undefined
    Тут дело не во vue, а в том, что Вы не передали url в метод (либо он просто undefined)
    Ответ написан
    Комментировать
  • Умное дублирование строки с селектором в CSS (PhpStorm/WebStorm)?

    pashted
    @pashted
    тыжпрограммист
    1. ставите курсор после скобки
    2. Edit -> Macros -> Start Macro Recording
    3. с клавиатуры приводите все в вид, как вы хотите (например, при помощи стрелок и ctrl+d ) и возвращаете курсор на место (стрелками).
    4. сохраняете макрос Edit -> Macros -> Stop Macro Recording (или красная кнопка справа внизу) с каким-нибудь осмысленным названием.
    5. находите в настройках Keymap раздел по фразе macro и назначаете клавишу (например ctrl+alt+d) на новый макрос.
    6. пользуетесь

    у меня получилось так5c9775a946271717125619.png

    или вот так, с автовыделением продублированного селектора
    5c9776f7b2120711549126.png

    для универсальности можно в начале вызывать кнопку end, чтобы сделать больше дублей последним макросом, выполнив меньше действий
    Ответ написан
    Комментировать
  • Как передавать пароль от браузера серверу, как его хранить на сервере и проверять корректность?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    В зависимости от степени безопасности.

    Если разбить все это на "по-проще", общий принцип такой:

    Клиент:
    - в первый раз ввести строку текста
    - нажать отправить
    - больше не вводить, ибо лентяй, а мы ж ему продавать собрались, не дай бог он сука дискомфорт почувствует

    Сервер:
    - получить строку текста
    - сделать хеш
    - проверить - чей это хеш (не угнали ли его по дороге)
    - в ответ отправить токен, который будет работать ограниченное время только для этого компьютера
    - токен сохранить на компе пользователя, и следующий раз отправлять автоматически для каждого действия без ведома юзера
    - при каждом действии обновлять время хранения токена (некоторые особо шизанутые делают новый токен каждое действие)
    - при малейшем подозрении на несоответствие токена - предложение вежливо пройти через авторизацию еще раз, но поскольку человек существо забавное - если ему скажут опять пароль вводить - он сука обидится, и потому придумана "двухэтапная" - через телефон или там отпечаток пальца или что угодно еще, да и полезно это - если пароль действительно угнали - отрезать палец и вырвать глаз - это еще можно вместе сделать, а вот замочив человека - попросить его маму ввести пришедший из СМС-код - это уже придется шантажом заниматься.

    Локальных хранилищ тоже бывает куча целая:
    - кукисы (хранится прямо в браузере указанное время)
    - сессии (хранится на сервере, но в кукисах есть ключ к ячейке в "банке", который опять же могут угнать)
    - ... еще десятки способов, о которых знают только крутые кодеры, которые считают себя крутыми просто потому, что их знают, на деле с точки зрения создания ценности людям - бесполезные знания

    Как ты понимаешь, это иллюзия безопасности, а не гарантия.

    Угонят токен - и все, сервак можно обмануть. Поэтому на серваке делаются всякие проверки типа зашить в токен - ип-адрес, размеры экрана юзера, его отпечаток пальца, сетчатку глаза, юзер-агент, устройство - и где-то даже какой-то умник целую либу писал, который умудрлися в этот хеш почти тыщу разных параметров засунуть.

    Вот еще тема, которую василий сказал - шифровать пароль уже на стороне клиента в момент отправки формы яваскриптом. Представьте себя хакером. Вы получили пакеты какого-то чувака, поставили компьютер на расшифровку, подключив десяток видеокарт, расшифровываете пароль, а вместо него видите 64 символьный хеш, ну то есть он прямо от клиента таким вышел. После этого будут маты от того, что теперь массив видюх нужно заставить еще и ключевую фразу из хеша выдрать. Ну то есть еще время декодирования увеличивается. Если загнаться то хеш может быть не просто хешем md5() а например md5 от md5 от развернутой строки прибавленной к md5() прямой строки, прокинутой через побитовый сдвиг на один разряд - ну то есть даже в этом закодировать последовательность действий. При отсутствии https - наиболее надежный способ.

    И потом - программисты Yii не рекомендуют использовать фунцию md5(). Почему? Потому что она быстрая очень. И при переборе пароля массивом видеокарт перебирается он шибко быстро. Поэтому рекомендуют использовать hash функцию, которая для создания хеша использует побольше времени, несколько секунд скажем. При написании синхронной программы (сайта на php, например) - это заставит юзера подождать после регистрации секунды 3-4 лишних, но если загнаться то процесс генерации пароля можно запихнуть в асинхронщину, а пользователю сразу токен выдать, то есть пароль ему сгенерируется чуть позже. Таким образом - за счет более длинной хеш-функции по времени хакеру потребуется куда больше времени - то есть юзеру на прямое создание пароля 5 секунд, а хакеру на перебор нескольких миллионов паролей понадобится несколько лет. Никто ему не заплатит 10 косарей баксов, чтобы сломать ваш долбанный пароль ВКонтакте. Если банковская сфера - опять же как писал выше - хеш от хеша, да развернуть пару раз, да трижды порубить, потом постучать в бубен и все это в хеш еще раз и вуаля - декодирование пароля займет 100 лет.

    Еще значит, При малейшем намеки на несоответствие токена или внезапное изменение - сервак говорит "тю, дядя, давайка пройди второй этап авторизации, а то я не верю, что это реально ты" и просит приложить палец. Или ввести номер, получив СМС. Или вставить ключ-карту синюю (duke nukem hello). Но и тут есть взлом - ключ карту украсть, смс-ку - попросить телефон, приложить палец = отрубить руку, вырвать глаз и тд

    Тут к тебе на помощь приходит https. Https это такая штука, которая в двух словах может быть названа игрой в партизан. На войне играли так - когда радиопереговоры прослушивались, а шифраторов не было - единственным средством защиты - было использовать ошибки в тексте и матерные слова.

    Так и тут - данные отправляемые в виде нулей и единиц. Компьютеры их так же легко перекодируют в пароль, как и закодировали. Чтобы этого не было, придумали ШИФРОВАТЬ строку в одну сторону. У сервака есть трафарет, у пользователя другой трафарет. Сервак шифрует своим, но назад можно расшифровать только пользовательским. Вернее можно и сторонним конечно, но современные компьютеры сделают это за много лет, и потому никто не заморачивается особо, производительность не та.

    Таким образом сайты, где есть https на текущий момент наиболее надежный способ скрыть нули и единицы от чувака, сидящего на прослушке твоего интернет трафика. А попасть он туда может от самых простых способов типа "друг, дай мне пароль от своего вайфай", до всяческих угадываний, взломов роутеров и на худой конец - под видом электромонтера, установив маааленькую плату тебе в распределительный щит.

    Так что авторизация - она простая. Вся надежда на шифрование. А сертификат, на котором пол-мира делает бабло - это средство подтверждения того, что компьютер умеет шифровать. Интересно, что он кончается каждый год, как будто в прошлом году компьютер умел шифровать, а в этом вдруг разучился. На деле конечно - просто гоните бабло, иначе покажем красный крестик вместо зеленого замочка, и в гугле понизим, так что гоните бабки. Вот.
    Ответ написан
    1 комментарий
  • Как сделать так, чтоб не обманули?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Как-то вы непоследовательно делаете.
    Сначала взялись за работу, потом задумались о рисках.

    Закодировать ничего у вас не получится, не тратьте время на поиски.

    Думайте о том, как минимизировать риски.

    1. Идеальный [для вас] вариант от монтёра Мечникова: утром деньги — вечером стулья. Здесь риски переходят на вашего заказчика.

    2. Приемлемый вариант предоплата небольшими частями, хоть постранично. Либо такая же пост оплата. Опять же минимальные риски либо у вас, либо у заказчика.

    3. Вариант win-win: демонстрация вашей работы с помощью программ удаленного доступа. Предоставляете доступ заказчику к своему рабочему столу и он смотрит, если устраивает — платит, после чего получает файлы. Можно использовать TeamViewer или шаринг экрана в скайпе, или еще что-то подобное. Риски быть кинутым на деньги сведены к нулю у обоих сторон.
    Ответ написан
    1 комментарий
  • Как добавить задержку к .css?

    Используйте css, вам здесь скрипты не нужны:
    .quadmenu-item {
        background-color: #000;
        
        -webkit-transition: background-color 0ms linear;
        transition: background-color 0ms linear;
        -webkit-transition-delay: 5s;
        transition-delay: 5s;
    }
    
    .quadmenu-item:hover {
        background-color: #f00;
    
        -webkit-transition-delay: 0s;
        transition-delay: 0s;
    }
    Ответ написан
    Комментировать
  • Подсветка кода с использованием trait в php

    nazarpc
    @nazarpc
    Open Source enthusiast
    Это баг, я недавно тоже такое заметил, создал issue в трекере PhpStorm, просьба проголосовать за для ускорения исправления:
    youtrack.jetbrains.com/issue/WI-19305
    Ответ написан
    Комментировать
  • Где можно найти примеры очень сложных Sql SELECT запросов?

    @mletov
    Sql запросы это ж не марки и не монеты, чтобы их коллекционировать. В отрыве от задачи, которую они решают, никакой ценности сами по себе не представляют.
    Ответ написан
    6 комментариев