Задать вопрос
Ответы пользователя по тегу Веб-разработка
  • 100% uptime c CloudFlare?

    @granty
    1. 100% нет. На бесплатном тарифе сайты бывают недоступны, при этом сам сайт отлично работает (для проверки этого я делал технический поддомен, который не проксировался через СА).

    -SLL-сертификат от CF - кастрированный, старым Хром/WinXP зайти на сайты невозможно - несовместимый протокол шифрования.
    Ставишь сертификат от letsencrypt - всё отлично и совместимо.

    В остальном - CF работает как часы.

    2. Если IP Cloudflare заблочен РКН - пишешь им, объясняешь, что это блочили не вас, и они меняют IP. Также можно создать новый аккаунт - он будет привязан к другому IP.
    Ответ написан
    Комментировать
  • Как сделать отображение сайта поисковиком?

    @granty
    Яндексу не важно что под капотом движка вашего сайта. Главное - что теги <title>, <meta description> и контент страницы не создаются динамически яваскриптом (ajax-сайты Яндекс не индексирует).
    Поисковики анализируют и индексируют присланный сервером html-код страницы, а каким образом сервер её создал - никто никогда не узнает.

    "Небольшая навигация снизу" - в Яндексе это называется быстрые ссылки - там описаны условия их формирования.
    Ответ написан
    2 комментария
  • Есть ли сейчас работающие бесплатные решения для блокировки Яндекс Советника?

    @granty
    Да. Установить на сайте заголовки Content Security Policy. Ей можно заблокировать любые браузерные расширения, вмешивающиеся в контент сайта (включая Яндекс Советника).
    Ответ написан
  • Как определяют номер телефона у посетителей сайта?

    @granty
    Куки исключены, браузер не сохраняет их и не хранит историю.

    1. Про evercookie слышали? А про Web Fingerprint?
    На хакере перечислена масса способов хранить ID на вашем компе без использования Куков и кэша, а технология Web Fingerprint позволяет хранить цифровой отпечаток компа, браузера на сервере банка: Фингерпринтинг конкретного ПК с точностью 99,24%, не спасает даже смена браузера.

    Если вы - клиент банка и заходили в его интернет-банкинг, он легко может вас опознать при использовании того же браузера и того же компа.
    А если у вас на мобиле установлено приложение интернет-банкинга - вы вообще под колпаком :)

    2. Если вы лазите по инету залогиненым в Вконтакте/Яндексе, то через backdoors в их API можно определить ваш профиль и все ваши данные.
    Сайт Соцфишинг работает на этом принципе.
    Сам банк тоже может использовать соцфишинг и ставить невидимый ифрейм на своё меню, и при клике вы автоматически авторизуетесь через аккаунт, например, Вконтакте. Зная ваш ID на Вконтакте, ваш телефон легко узнаётся, их базы регулярно сливаются и продаются

    PS: Узнать как конкретно вас "слил" и каким образом - невозможно без исследования конкретной ситуации.

    факультатив

    Всё вышеперечисленное - детский лепет по сравнению с тем, какие возможности имеет Google (и, частично, Яндекс с Apple).
    У всех дома стоит точка WiFi, к которой коннектится ваш комп и мобильник с Андроид. Через мобильник Гугл знает все номера телефонов, которые подключаются к этой точке доступа (и все аккаунты соцсетей в которые вы логинились с мобильника). Поэтому когда вы лезете Хромом с компа через эту же точку доступа - Гугль уже знает, что это вы (или один из ваших домочадцев). По GPS на мобильнике он знает даже адрес вашего проживания с точностью до подъезда.
    Так что мы все давно уже добровольно "чипованы", чего удивляться что о нас всё известно.
    Ответ написан
    Комментировать
  • Как сделать страницу сайта чтобы не было видно расширения?

    @granty
    Вариант 1. Для веб-сервера Apache в конфиге сайта (можно в .htaccess в корневой папке сайта) пишете: DirectoryIndex index.php (он уже там есть у всех хостеров). Тогда при обращении к site.ru будет автоматически запускаться index.php (или как там вы его назовёте).
    Через index.php уже роутите все остальные URI на нужные модули.

    Для nginx - тоже делается, но директиву я не знаю, надо смотреть доки.

    Но сайт будет доступен и по site.ru и по site.ru/index.php, поэтому в index.php надо делать редирект на site.ru когда в URI появляется index.php.


    Вариант 2 сделать редирект на index.php через mod_rewrite.
    Во многих движках сайтов такая возможность есть из коробки.
    Ответ написан
    2 комментария
  • Что лучше показывать 404 ошибку на странице или перенаправлять на 404?

    @granty
    С точки зрения Вебразработки - по стандарту HTTP сервер должен отдавать 404 если страница не найдена (не меняя её URL). Редирект 301/302/307/308 делается когда точно известна куда была перемещена страница.
    Редирект на страницу, которая отдаст браузеру 404, вводит посетителя в заблуждение - не понятно какой URL оказался битым и его невозможно исправить вручную.

    С точки зрения Поисковой оптимизации - надо давать "200 OK", типовую заставку "Страница не найдена" и ставить с неё ссылку на главную страницу сайта (или мини-меню по разделам).
    Поисковики их "склеят по контенту" в одну страницу, но это позволит подобрать статический вес внешних(и внутренних) ссылок на такие не найденные страницы.
    Ответ написан
    2 комментария
  • Как перевести трафик с старого сайта на новый?

    @granty
    Трафик с органики (выдачи ПС) в целом определяется 2-я факторами:
    1 ссылочным ранжированием (внешними ссылками на страницу и внутренними ссылками), передаёт статический вес и анкорное ранжирование;
    2 текстовым ранжированием страницы.

    Чтобы сохранить ссылочное ранжирование (перенести его на новый сайт), старый домен придётся оплачивать вечно, и сделать с него редирект на новый. Это позволит переклеить внешние ссылки на новый домен.

    Если вы поменяли структуру URL на новом сайте, придется делать постраничный редирект со страниц старого сайта на "правильные" страницы нового сайта.

    Вместо редиректа можно использовать "мягкий" вариант с rel="canonical", работает и в Яндексе и в Гугле.

    Сохранить текстовое ранжирование 1 в 1 не получится, если вы поменяли тексты, его оформление тегами и изменили ЧПУ в URL.
    Станет оно лучше или хуже - знают только ПС.

    Внутреннее ссылочное у вас тоже поменяется, скорее всего.
    Ответ написан
    Комментировать
  • Писать форму регистрации самому?

    @granty
    Бывают ли такие ситуации, когда лучше самому писать форму регистрации?

    Да. Везде, где есть ваша ответственность за перс.данные и финансы клиента.
    Например - собственный интернет-банкинг.
    Ответ написан
    Комментировать
  • Сколько человек нужно чтобы создать сайт?

    @granty
    интеллект-карту в которой расписано сколько человек нужно чтобы создать сайт и кто из них чем занимается и какие технологии применяет
    Подобные "интеллект-карты" - это сферический конь в вакууме.

    Сайт = Контент(1) + CMS(2) + UI(3) + Хостинг(4)

    Человечество наработало массу готовых решений для типовых задач в (2), (3) и (4); специально обученные "человеки" нужны только если требуется что либо "нестандартное".
    Их количество зависит будете ли вы "допиливать готовое" или "создавать с нуля".

    Для большинства сайтов, главное - это Контент и UI(User Interface). Но для сайтов с "User Generated Content"(пример - youtube) важнее всего UI.
    Поэтому от баланса "важности" между пунктами (1), (2), (3) и (4) в вашем проекте, будет зависеть количество спецов и требования к их специальным знаниям/опыту.
    Ответ написан
    Комментировать
  • Откуда лезет реклама?

    @granty
    Чтобы показывать рекламу, надо внедрить яваскрипт в HTML-код страницы вашего сайта. Технически это могут сделать:


    =========На вашей стороне:========== (реклама будет только у вас)
    1. провайдер интернет.
    Вставляет рекламу на http-страницы, на https-страницах рекламы нет, через VPN рекламы тоже нет.


    2. браузерные плагины и расширения
    Реклама будет даже на https-страницах, и на любом VPN, так плагины работают с уже расшифрованной странице в браузере.
    Реклама появляется только в браузере с установленным плагином.
    Особо пакостные (типа mail.ru агента) устанавливаются на уровне операционки и гадят во всех браузерах одновременно.


    3. Вирус на компе
    Может вставлять рекламу во все браузеры, и по http: и по https:



    =========На стороне сайта========= (реклама будет у всех)
    4. Хостер.
    5. Взлом хостинга.
    6. Скрипт с чужого домена, используемый вами на сайте.


    Найдите в HTML-коде сайта этот "посторонний" яваскрипт, это сильно облегчит поиск того, кто его вставляет.
    Попросите друзей/знакомых пооткрывать сайт - если у них будет реклама, копайте в сторону пунктов 4, 5, 6

    PS: иногда такая реклама вставляется только на мобильных устройствах. Также рекламы может не быть с зарубежных IP (просто нет рекламодателей для чужой страны/языка)
    Ответ написан
    Комментировать
  • Как создаются современные сайты?

    @granty
    Современные сайты создаются только на CMS. Сайт - это айсберг. "Верстальщики и PSD-макеты" относятся лишь к маленькой видимой части айсберга - то, что видит и с чем взаимодействует посетитель.
    А на вебсервере работает огромная невидимая подводная часть айсберга - множество скриптов, баз данных и тп. В общем, это и есть CMS - система управления контентом. Она может быть связана связана с оплатой, бухгалтерией, наличием товара на складе, системой учета посетителей и кучей всего.

    Даже простые сайты со статьями имеют удобную систему добавления/редактирования текста, фото/видео, структуризации по категориям и тп. Без CMS ими невозможно управлять.

    Поэтому на голом HTML можно сделать только простые сайты-визитки и одностраничные лендинги.
    Ответ написан
    Комментировать
  • Как создать удобный и незаметный редирект со своего сайта на сайт магазина?

    @granty
    3. При заказе на моем сайте будет автоматически идти заказ в другом магазине
    Как сделать так, чтобы заказ редиректился автоматически, чтобы я мог получить свою комиссию, но при этом не связывался с обработкой заказов и их проверкой.
    Это делается не так, не надо ничего делать тайно. Кроме промокодов (которые вам не понравились), есть:

    - "реферальные ссылки" специальные ссылки или баннеры, при переходе по которым магазин знает, что этого клиента направили ему вы. И начисляет вам %.

    - "реферальные куки" и связанный с ним cookie stuffing. Посетителю садится специальная кука(от магазина - вашего партнёра) на неделю/месяц, и если он в течение времени жизни куки совершит покупку, вы получаете % с неё.


    2. Приводить туда людей через контекстную рекламу
    То, чем вы хотите заняться называется арбитраж трафика. Эта тема была вытоптана лет 6-8 тому назад.

    Почему вы думаете, что отобьёте затраты на рекламу?

    Подумайте, почему магазин сам не заказывает себе контекстную рекламу? Ведь он затратит на неё денег сколько и вы, но при этом оставит себе ваш %. И этот сэкономленный % снова пустит на контекстную рекламу, и заработает ещё больше. Зачем нужны вы в этой цепочке?

    От правильных ответов на эти вопросы зависит успех вашей затеи.
    факультатив

    Года три тому назад, один ушлый веб-программист придумал способ массово накручивать переходы на сайты в Яндекс.Метрике. Он насобирал кучу id Яндекс Метрики с тысяч сайтов и стал накручивать им фиктивные переходы со своих "пустых" доменов.
    Вебмастера долго не могли понять зачем он это делает.
    При этом, этот разбойник накручивал переходы по таким интригующим запросам, что вебмастера заходили на эти его домены посмотреть что за фигня происходит и почему к ним идёт такой шквал трафика.

    Внимание, вопрос: зачем же он это делал?

    PS: Если вы внимательно изучили написанное мной выше - вы знаете ответ.
    Ответ написан
    7 комментариев
  • Почему к адресу сайта добавляется www, при наличии https?

    @granty
    Вот уже 20 лет, как www. всё ещё занимает умы вебмастеров. И плодят они кучу дублей страниц, а потом доблестно сражаются с ними с помощью редиректов и rel='canonical'. И пишут кучу лишнего кода, чтобы решить проблемы SOP/CORS и установки куков на поддомен с www.
    откуда взялся этот www

    Двадцать лет назад, World Wide Web был только одной маленькой частью Интернета, и самый быстрый PC был основан на 386 чипах. Они были не очень быстры и не могли выдерживать большую нагрузку, таким образом, была необходимость размещать различные «части» Интернета на отдельных машинах.
    Например, сервер Apache размещался на одном компьютере, почтовый сервер на другом, и сервер FTP на ещё одном. Каждый из компьютеров отзывался на различный адрес IP, но на то же самое имя домена. Внутри этого доменного имени компьютеры дифференцировались по предоставляемому сервису (что назвалось тогда, "именем машины"). Таким образом, имена серверов в Интернет начинались с «имени машины» по предоставляемому ей сервису: www.domain.ru, mail.domain.ru, и ftp.domain.ru. («Старожилы» Интернета, наверное помнят ещё и такой архаичный сервис, как gopher.domain.ru, в настройках IE он еще остался).

    Сегодняшние компьютеры, конечно, намного более мощны, и мы можем поместить все различные "части" наших услуг Internet в той же самой «коробке» (принцип Head&Sholders - «два в одном флаконе» был применён задолго до массового появления «перхоти» в России :)
    Действительно, мы часто устанавливаем несколько сотен доменов, каждый с его собственным набором сервисов (http, ftp, mail…), на тот же самый сервер. Поэтому в настоящее время приставка www является «антиквариатом» и может игнорироваться.

    Этот экскурс в Историю, возможно, представляется интересным, но единственная важная вещь из него - то, что технически www.domain.ru - точно так же как sub.domain.ru - считаются полностью различными объектами относительно domain.ru, но по причинам, изложенным выше, обычно www.domain.ru и domain.ru обычно должны показывать одну и ту же страницу, в отличие от sub.domain.ru.

    Не надоело возиться с этим атавизмом? Убрать www и забыть его, как страшный сон. В www уже давно нет никакого смысла, зачем тащить в светлое будущее этот старый чемодан без ручки?

    По уровню вашей диагностики - "сайт недоступен", возможны 2 варианта:
    - SSL сертификат создан только на www.domain.ru, поэтому domain.ru недоступен по https://
    - в настройках веб-сервера указан www.domain.ru и не указан domain.ru (выше ребята написали что посмотреть). Тогда domain.ru будет недоступен и по http:// и по https://
    Ответ написан
    Комментировать
  • Как организовать обновление данных на странице по инициативе сервера?

    @granty
    Есть технология Server-Sent Events, вот свежий вопрос про обновление данных на странице по инициативе сервера, как раз на эту тему.
    Ответ написан
    Комментировать
  • Как узнать время загрузки страницы?

    @granty
    таким образом что бы у него приходило уведомление об этом
    у него, или от него?
    Время загрузки у конкретного пользователя будет зависеть от "толщины" его Интернета и сколько закладок он одновременно открыл в браузере. И насколько загружен его комп, может он биткойны майнит параллельно.

    И определитесь, что конкретно вы имеете в виду под "временем загрузки страницы".
    В статье на Хабре как измерить время открытия страницы рассмотрены аспекты того, когда можно считать, что страница загружена.
    Ответ написан
    Комментировать
  • Права пользователь?

    @granty
    1). Решение - правильное для небольшого проекта.

    2). Вы же авторизуете пользователя, и именно по таблице users. И наверняка авторизацию храните в сессии. Добавьте в сессию поле is_admin и проверяйте его на входе в админ панель.
    Надо:
    - убрать ненужные пункты меню
    - проверять is_admin в скриптах из этих убранных пунктов меню. Ибо ссылку на них можно ввести и руками.

    PS: По уму надо делать списки скриптов, и привязывать привилегии пользователей к разрешенным им скриптам. И в начале всех скриптов проверять привилегии.
    Ответ написан
    Комментировать
  • Как называется такой сервис для сайта?

    @granty
    Любите лазить по интернету, залогиненным в аккаунты соцсетей?

    Это называется Clickjacking. Сайт проверяет, что вы залогинены в соцсети, и может, например, узнать адрес вашей страницы в VK и емайл.

    Уязвимости выше закрыли под давлением общественности, но постоянно находят новые. И я вполне допускаю слив базы vk.com, тогда будет доступен и номер телефона.

    PS: если вы авторизуетесь на сайте через аккаунты в соцсети - они вообще штатно получают инфу о вас безо всяких кликджакингов.
    Ответ написан
    Комментировать
  • Как устроены сайты с поиском времени в опр.городе?

    @granty
    Была уже тема Существует ли API времени?.
    Могут добавить (сам не пользовался):
    - https://worldtimeapi.org/
    - Dater, коды есть на гитхабе

    Лучше избегать API сервисов, которые не обновляются - сейчас модно отменять переход на зимнее/летнее время. За всеми странами надо постоянно следить.

    Если нужны виджеты/информеры на сайт
    - https://yandex.ru/time/
    - https://time.is/widgets
    Ответ написан
    5 комментариев
  • Можно ли сделать бан лист для сайта, чтобы другие пользователи не могли отправлять личные сообщения вам?

    @granty
    Я так понял, он хочет, чтобы каждый пользователь имел свой чёрный список (ban--лист). И мог редактировать его

    Гуглите "связь один ко многим". Потребуется отдельная таблица BanList с полями
    userID INT      // ID пользователя
    bannedID INT    // ID того, кого он забанил

    По
    SELECT bannedID from BanList WHERE userID='$ID'
    можно выбрать ID всех, кого забанил пользователь с userID='$ID'

    Используются ID из вашей таблицы реальных пользователей.
    Ответ написан
    Комментировать
  • Почему выходит ошибка 404 при том что файл есть в каталоге?

    @granty
    1. Проверьте права доступа к папке acme-challenge , возможно, веб-сервер не имеет права читать их неё. Нужен '-rx' для юзера, под которым крутится веб-сервер (или его группы).

    2. В конфиге веб-сервера должен быть прописан
    Alias /.well-known/acme-challenge/ /u/www/virtual/letsencrypt/.well-known/acme-challenge/

    и
    <Directory "/ваш путь на сервере/.well-known/acme-challenge/">
        Options None
        AllowOverride None
        ForceType text/plain
        Order allow,deny
        Allow from all
        RedirectMatch 404 "^(?!/\.well-known/acme-challenge/[\w-]{43}$)"
    </Directory>


    3. ваш "файл без расширения" не попадает под регулярку
    RedirectMatch 404 "^(?!/\.well-known/acme-challenge/[\w-]{43}$)"

    закомментируйте эту строку и перезапустите веб-сервер - файл должен показаться. Но потом раскомментируйте её обратно, это защита от "хакеров".
    Ответ написан
    6 комментариев