• Как удалить теги br?

    Stalker_RED
    @Stalker_RED
    В matches у вас массив с содержимым всех pre найденных на странице, а вы используете только первый.
    Но даже если вы обработаете весь список - это проблему не решит, т.к. потерятется тот код, который не попал в pre, например.

    И вообще, парсить большие куски HTML регулярками -
    плохая идея


    Лучше взять какой-нибудь html sanitizer, или Zend_DOM_Query, или DOMDocument, или другой инструмент, который предназначен для обработки HTML.
    Ответ написан
    Комментировать
  • Откуда значения?

    Комментировать
  • Что почитать по веб-безопасности в 2016 новичку?

    littleguga
    @littleguga
    Не стыдно не знать, а стыдно не интересоваться.
    1. Для того, чтобы понимать, как производится та или иная атака/взлом - нужно очень хорошо понимать, как работает и устроен тот или иной продукт, какие процессы происходят внутри него.
    В первую очередь, конечно же, следует тщательно разобраться с устройством сети(как работает интернет, что такое пакет, протоколы, из чего они состоят, dns и тд). Как работает фаервол, для чего он нужен и т.д. Также крайне советовал бы научиться основам системного администрирования. А также стать более-менее уверенным пользователем unix-like систем. (сложные команды можно подсмотреть в гугле), но перемещение, логи, отслеживание состояния системы, правила для фаервола - помнить, понимать и уметь использовать.

    2. После этого посмотреть в сторону sql или других БД, как они работают, какие можно допустить ошибки. XSS уязвимости.
    Понять, что такое утечка памяти и из-за чего она возникает.

    2.1 Методы шифрования, обмен ключами, длина ключа, шифры. Что такое VPN и т.д.

    3. Чтобы всё это было не скучно, предлагаю Вам участвовать в CTF, которые проходят во всем мире с завидной регулярностью.
    Следить можно здесь, например: https://vk.com/invulnerble

    Также можете попробовать потренироваться самостоятельно, для этого есть тестовые кейсы, например: OWASP
    https://www.owasp.org/index.php/Main_Page

    ОСТОРОЖНО! СПОЙЛЕРЫ!:(а точнее разбор заданий)
    https://habrahabr.ru/post/250551/

    4. Также материалы по безопасности и ресурсы для обучения периодически добавляю здесь: https://github.com/lgg/studying/tree/master/security

    upd:
    Как идет ДДос атака?
    Собственно изучив первый пункт, Вы найдете ответ.

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

    Как пишутся программы для подбора паролей
    Зависит от шифрования. Есть брутфорс, радужные таблицы и много других. Опять таки, когда Вы дойдете до методов шифрования, то тоже ответите на этот вопрос.
    Ответ написан
    3 комментария
  • Можно ли заработать в мире Unix-like, unix-way?

    @Z-r
    Мне известно четыре основных способа заработка, напрямую связанных со свободными программами:

    — Первый, самый прямой, но от того почему-то всем не менее неочевидный — брать и продавать копии свободных программ. Аудитория: любые конечные пользователи. Примеры: Parted Magic, ряд программок для «Андроида», ну например, «Conversations». Высокоморальность: в полном порядке.

    — Второй — это уже известная вами продажа поддержки. А фактически иногда и просто своего имени, когда какая-то реальная поддержка начинается с сумм несколько больших, чем базовый контракт. Аудитория: те, для кого ваша программа есть орудие производства, то есть компании и предприниматели. Пример: уже озвученный вами Canonical. Высокоморальность: в полном порядке.

    — Третий — это продажа исключений из авторского лева. Аудиторией будут разработчики несвободных программ, а программа ваша должна быть библиотекой под (как нетрудно догадаться) авторским левом, причем чаще сильным. Суть в том, что для добрых людей ваш продукт свободен на условиях, скажем, GNU GPL или GNU AGPL, а проприетарщики пусть платят за возможность использовать его в своих шкурных интересах. Примеры: GhostScript, MySQL. Высокоморльность: прихрамывает маленько.

    — Четвертый — это то, о чем помянул тов. CityCat4 — т. н. free crippleware, то есть полноценная ваша программа несвободна и платна, но у нее есть свободный урезанный вариант. Причем урезано может быть как что-то существенное, так и сущая ерунда. Аудитория: кто угодно. Примеры: Odoo, GitLab, ProcessMaker. Высокоморальность: от невысокой до никакой, смотря сколько отрезано.

    И разумеется, все вышеперечисленно можно комбинировать: Qt, к примеру, и поддержку (обучение) предоставляет, и исключения из авторского лева (причем слабого!) продает, и совсем ерундовую несвободную часть имеет. А упомянутый вами Red Hat — продает копии и предоставляет поддержку. А иногда и такое бывает: программка для «Андроида» под названием OsmAnd полностью свободна, но поставляется в Гуглоплэе в двух вариантах: полном за копеечку и урезанном бесплатно. Еще раз: обе версии свободны, то есть никакой моральной проблемы здесь нет.

    ――

    P. S. Я перечислил только способы заработка на программах как таковых, полагая, что схемы, где свободные программы участвуют косвенно, и без того очевидны, но в комментариях только о них и говорят, так что надо, наверное, упомянуть, что да, конечно, свободная программа также может быть:
    — Частью продаваемой услуги — чаще всего услуги специфического хостинга, как ставимый здесь в пример Openshift или (если ближе к народу) Feedly.
    — Частью продаваемого устройства, причем само устройство может быть как свободным, так и нет. Тысячи их.
    — И наконец, просто частью приносящего прибыль техпроцесса. То есть компания пишет (заказывает) программу себе для внутреннего использования и могла бы ее вообще не распространять, но, не считая ее своим «ноу-хау», ведет себя благородно и просто свободно делится ею со всеми. Известнейший пример — Reddit (хотя в последнее время они подскурвились).

    ――

    И не могу все-таки не отметить, что unix-way отношение к свободе имеет такое же, как мелкое к горячему.
    Ответ написан
    2 комментария
  • Надёжно ли такое шифрование?

    @Sing303
    Используйте готовые библиотеки, не нужно придумывать велосипед, если вы не специалист в этой области

    Вспомнились статьи
    Вы опасно некомпетентны в криптографии
    Почему я не лезу в криптографию
    Ответ написан
    Комментировать
  • Существует ли "карта программиста"? Что и за чем учить?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Нет одинаково эффективного пути для всех и каждого.

    Я учился на конкретных задачах. Обучение практически всегда начиналось с состояния хочу сделать вот это (четко осознаваемый конечный результат), но вообще понятия не имею как это делать, и даже с какой стороны подойти и за что хвататься...

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

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

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

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

    На первых порах, тестирование будет занимать до 99% времени и сил. Заодно подтягивается синтаксис используемых языков (вообще не важно каких), вырабатывается внимательность, концентрация, тренируется память и пр.

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

    С этим не рождаются, это выкристаллизовывается за сотни и тысячи часов жесткого баттхерта от неспособности найти, где ты забыл поставить запятую... Когда код из 10 строк прочитан сотни раз вдоль, поперек и наискосок...

    Только так, только жесткий хардкор! Если ты не прошел эту фазу, то ты либо родился гением, либо тебе нечего делать в профессии... Это как детские болезни - ими нужно переболеть в детстве.

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

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

    Ах да, обложись справочниками по любому инструменту и научись быстро вникать и подхватывать необходимый минимум. Обычно достаточно на 20% владеть инструментом, чтобы решать 80% задач.

    В любом случае я за критерий истины держу платежеспособный спрос.
    Ответ написан
    3 комментария
  • Будет ли лучше делать статьи под один ключ?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Я бы поступил так:
    Все вопросы - нужно рассортировать в группы по ключам и их синонимам.
    На каждую группу: 5-6 топ-синонимов ключа в тексте в одну статью.
    Ответ написан
    1 комментарий
  • Как подписывать разработанные сайты?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Договориться без бумажного договора - просто:
    Формат прост: соблюдай условия и получай привилегии.

    Если ссылка будет установлена (и в течение всего срока будет находиться на сайте в оговоренном месте и в оговоренном виде), то Вы предоставляете бесплатную ТП по исправлению багов на срок от года и даёте процентную скидку на доработки.

    Тогда смысла убирать ссылку у Клиента не будет, т.к. она ему даст привилегии и бонусы.
    А Вы - в любой момент можете мониторить её наличие и, если её уберут сразу, а потом, перед обращением, вернут и сразу же обратятся к Вам - сообщить о несоблюдении условий и отказать в бесплатной ТП (+ аннулировать скидку на доработки).
    Ответ написан
    9 комментариев
  • Нероботоспособный код. В чем проблема?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    $('document').ready(function(){
        	var myLink = $('a[href*="documents/yamaha_fz6.PDF"]');
        	myLink.text('text');
    });

    А так?
    Ответ написан
    Комментировать
  • Нероботоспособный код. В чем проблема?

    @maxnrg33
    верстальщик
    добавь кавычки
    var myLink = $('a[href*="documents/yamaha_fz6.PDF"]');
    Ответ написан
    Комментировать
  • Как на PHP спарсить все имена файлов с картинками из HTML кода?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Из моих SNIPPET-закромов :D :
    /["']((.*\/\/|)([\/a-z0-9_%]+\.(jpg|png|gif)))["']/g
    ----------
    Находит URL строки с изображениями в HTML:
    $1 => путь к изображению
    $2 => протокол, если путь АБСОЛЮТНЫЙ
    $3 => путь к изображению без протокола, если путь АБСОЛЮТНЫЙ
    $4 => расширение изображения (jpg,png или gif)
    
    PHP:
    ----------------------------
    $re = "/[\"']((.*\\/\\/|)([\\/a-z0-9_%]+\\.(jpg|png|gif)))[\"']/"; 
    
    
    javascript:
    ------------------------
        var re = /["']((.*\/\/|)([\/a-z0-9_%]+\.(jpg|png|gif)))["']/g; 
        var str = '[TEXT]';
        var m;
         
        while ((m = re.exec(str)) !== null) {
            if (m.index === re.lastIndex) {
                re.lastIndex++;
            }
            // View your result using the m-variable.
            // eg m[0] etc.
        }
    
    PYTHON:
    --------------------------
        import re
        p = re.compile(ur'["\']((.*\/\/|)([\/a-z0-9_%]+\.(jpg|png|gif)))["\']')
        test_str = u"[TEXT]"
         
        re.findall(p, test_str)
    Ответ написан
    2 комментария
  • 2 домена, один зеркало, как лучше связать?

    glebovgin
    @glebovgin
    Full Stack Web Developer
    Если вы хотите, чтобы на двух доменах показывался один и тот же контент, то условно DocumentRoot для обоих доменов должен быть один и тот же.
    domain-2.com должен быть ServerAlias для domain.com и никаких редиректов в htaccess писать не надо.
    Ответ написан
    Комментировать
  • Как правильно построить процесс работы дизайнеру на Upwork в Украине?

    opium
    @opium
    Просто люблю качественно работать
    регистрируешься
    бидишь
    низкие для мелких работ
    работаешь
    как все, апворк не дает вариантов строить финансовые отношения отличным способом от того что предлагает апворк, а он предлагает только один вариант.
    еще есть хорошая статья про работу на 99десигн
    upworkest.ru/kak-vyigryvat-konkursy-na-99-design
    Ответ написан
    7 комментариев
  • Как организовать мини-тренировки по программированию (для себя)?

    @KingAnton
    Ответы на тостере
    Ответ написан
    Комментировать
  • Почему при переносе сайта с хостинга на хостинг ошибки в кодировке?

    opium
    @opium
    Просто люблю качественно работать
    Переедьте на нормальный хостинг с mysql 5.5 и свежим пхп, этот ваш самый пхп перестали поддерживать пару лет назад уже самым на него переезжать
    Ответ написан
    Комментировать
  • Адаптировать уже работающий сайт под моб устройств, какие есть нюансы?

    HamSter007
    @HamSter007
    HTML/CSS верстальщик
    Какие есть нюансы?


    Смотря какая верстка и как показывает практика, год не имеет значения (если, конечно, не далекие 90-ые), потому что до сих пор есть динозавры, которые верстают таблицами, либо с использованием классов типа "niz", "verx", "a_tyt_ya_ribu_zavorachival".

    Самое распространенное:

    - Задана фиксированная ширина, либо у всей обертки (в лучшем случае), либо для .header, .footer, .main.
    Решение: заменить фиксированную ширину width: 1000px; на max-width: 1000px; width: 100%;.

    - Задана фиксированная ширина у остальных блоков (кнопки, формы, ...).
    Решение: применять уже медиазапросы @media screen and (max-width: XXpx ) { ... }, лучше, конечно, @media screen and (min-width: XXpx ) { ... } , либо применять ширину в %, где есть возможность.

    - Изображения.
    Решение:
    img { max-width: 100%; width: 100%; height: auto; }


    НО все это зависит от ситуации и потребностей. Все зависит от сайта, от дизайна. Так сразу и не скажешь, что все же нужно применять, а что и не стоит.
    Ответ написан
    Комментировать
  • Почему Тостер при var location=window.location.href; ежесекундно рефрешыт страницу?

    @napa3um
    Свойства объекта window экспортируются в глобальное пространство JS-движка бразуера, а применение var к уже определённым переменным игнорируется. Потому вы, по-сути, написали код, эквивалентный следующему:
    window.location = window.location.href;
    Используйте другое имя переменной или используйте замыкание для перекрытия глобальных переменных:
    (function(){
        var location = window.location.href;
        console.log(location);
    })();

    Подробности: https://learn.javascript.ru/global-object
    Ответ написан
    Комментировать
  • С чего начать изучение баз данных?

    @artemt
    Full-stack developer
    Посмотри книги Мартина Грабера (Грубера иногда в русской транскрипции)
    Ответ написан
    Комментировать
  • Какие есть средства для проверки правильности настройки почты?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Проверка тела письма на спам: https://www.mail-tester.com/
    2. Проверка Open Relay: www.mailradar.com/openrelay
    3. Краткая инструкция по основным параметрам почтового сервера: https://geektimes.ru/post/59417/
    4. Проверка настройки DNS: dnscheck.pingdom.com
    Ответ написан
    2 комментария