• Не заменяются спецсимволы в title \?

    tomnolane
    @tomnolane
    профессиональный разработчик
    в браузере: 4862eb5d6c8841d7851477d7d73b1c78.JPG
    в редакторе:
    38131ccfa99b4cd58a7a5b61e1cbf8e7.JPG
    у меня на сайте норм отображается + в всплывающей подсказке тоже. Проверьте (попробуйте) сохранить вашу страницу в UTF-8(без BOM)
    f28cd100da8842c3a55351990acf007a.JPG
    Также стоит проверить как выглядит страница в другом браузере.
    П.с. ef6fe0811f864821a7c3552bbe9067ed.JPG
    п.с.с. смотрел через браузер опера
    п.с.с.с. через notepad++ попробуйте изменить и сохранить
    Ответ написан
    3 комментария
  • Как это сделано?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    2 комментария
  • Как правильно подключить сетевой диск на удаленном компьютере?

    Smithson
    @Smithson
    20+ лет админю
    Ничего вы не сделаете. Чтобы диск не отваливался, надо, чтобы OpenVPN раздавал вам один и тот же ip. Это делается в его конфиге. Доступа туда у вас нет.
    Несите админу пива :)
    Ответ написан
    6 комментариев
  • Как лучше всего шифровать пароли для сохранения в БД?

    Tyranron
    @Tyranron
    Чтобы лучше понять "как" и "почему", для начала следует сформулировать задачу и рассмотреть пути решения.

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

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

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

    Давайте поставим теперь себя на место злоумышленника. Располагая всем этим, как бы мы взламывали пароль?
    1. Радужные таблицы (заранее сгенерированные таблицы "хэш -> значение").
    2. Атака по словарю (сначала делается перебор по наиболее вероятным значениям).
    3. Полный перебор.
    Полный перебор хоть и решит задачу 100%, но это крайняя мера, крайне неэффективная, и, как правило, не рабочая, потому что пусть пароль и можно подобрать за десятки тысяч лет, злоумышленник столько не проживет (как и сама взламываемая система, и сам пользователь). Потому если мы обезопасились от пунктов 1 и 2 кое-как, то задачу, считай, решили.

    Если мы просто возьмем какую-то хэш-функцию (например, sha256) и захэшируем пароль, то сделаем очень плохо. Почему? Потому что злоумышленник, видя это, просто возьмет хэш и подставит в радужную таблицу, и, если пользователь не заморачивался с паролем (а как правило так и есть), то пароль будет получен практически сразу.

    Что нужно сделать, дабы исключить вариант использования радужных таблиц?
    Сделать так, чтобы значения, подаваемые на вход хэш-функции, гарантированно в них отсутствовали. Для этого и придумали соль. В связи с этим к соли есть одно простое требование: соль должна быть сложно угадываемой.
    То есть, если у нас есть пароль "password" и соль "111", то вероятность попадания строки "password111" в радужную таблицу все ещё очень высока, а значит подобная соль плохая. А вот соль "t%Lp-,DU4=w],9c7F.N$" хороша, потому что строку "passwordt%Lp-,DU4=w],9c7F.N$" в радужную таблицу никто записывать не будет.
    Вывод: нам нужна соль для того, чтобы исключить поиск по хэшу в радужных таблицах.

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

    Далее в арсенале злоумышленника остается атака по словарю.
    Увы, полностью исключить данный вариант может только пользователь, если будет использовать стойкие и сложные к угадыванию пароли, у которых вероятность попадания в словари "крайне мала"(с).
    Но на благоразумие всех пользователей надеятся не стоит, а обезопасить их как-то надо. И здесь у нас остается возможность "вставить палку в колесо" злоумышленнику, увеличив время выполнения алгоритма. То есть просто берем и хэшируем результат повторно надцать раз, пока время выполнения алгоритма не станет достаточно длинным, например, 500ms. Нам при аутентификации пользователя (да и самому пользователю) 500ms ждать не проблема, а вот злоумышленнику делать подбор пароля со скоростью 2 пароля за секунду, уже "ой-какая-головная-боль".
    Вывод: повторяем хэширование много раз, дабы увеличить время выполнения алгоритма, что замедлит подбор паролей.

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

    Дабы реализовать все вышесказанное, к велосипеду ручонки тянуть не нужно, именно из-за вышеуказанных "заморочек" в деталях алгоритмов. Криптография дилетанства не прощает. Тем более, что уже есть де-факто промышленные стандарты.
    Например, bcrypt алгоритм (спасибо kpa6uu за упоминание). В PHP он реализован посредством стандартной password_hash() функции. В других языках тоже хватает реализаций.

    Ну и наконец-то отвечая на Ваш вопрос "как лучше всего?", то на данный момент это алгоритм Argon2, победитель последнего Password Hashing Competition. С реализациями в языках, к сожалению, пока что не так все радужно как у bcrypt.
    Ответ написан
    2 комментария
  • Переход из С++ в PHP?

    Stasgar
    @Stasgar
    Обученная макака
    Преимущество PHP очевидно - работы большое кол-во и края ей не видно. В любом случае советую начать с него. По мере работы, если уж и когда он начнет терять популярность - вы это точно заметите и у вас будет достаточно большое кол-во времени, чтобы изучить что-то новое. А вот если будете изучать то, что "набирает популярность", "ну точно точно будет перспективно" - можете лишь потерять время и в конечном итоге получить пустышку.
    Ответ написан
    1 комментарий
  • Как сделать наиболее безопасное джаббер общение?

    Jump
    @Jump
    Системный администратор со стажем.
    Как сделать наиболее безопасное джаббер общение?
    Для начала нужно четко определиться что есть для вас безопасность. Т.е чего конкретно вы боитесь.

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

    или сторонний сервер, который не сохраняет логи
    Вообще то пофигу сохраняет он логи или нет, у провайдера они в любом случае сохраняются.
    Ответ написан
    22 комментария
  • Какой Macbook выбрать для разработки? Air или Pro?

    BVadim
    @BVadim
    Мне интересно, те кто пишут "конечно же Pro", от чего отталкиваются? От названия или просто от того, что сами купили Pro и его советуют. Пишу, как владелец обоих ноутбуков. Имел возможность сравнивать их в лоб, не 10 минут "посмотреть у друзей", а работал на них довольно долго. Профиль - web-разработка и разработка мобильных приложений. Модели Macbook Air 13" mid 2013 Core i7/8Gb/512Gb. и Macbook Pro 13" mid 2014 Core i5/8Gb/256Gb.

    По сути они с 2013 года практически не менялись, там разница в пределах 10-15% с моделями 2015-2016.

    Так вот, у Pro только одно преимущество - у него потрясающий экран. Всё. Он тяжелее, горячее, меньше работает от батареи, жрёт больше памяти, имеет менее отзывчивый интерфейс. Всё это вытекает из большого разрешения. Да, это отличный аппарат, он даст фору многим. Но если в лоб сравнивать его с Air, при моём профиле работы - Air выигрывает Pro по всем параметрам, кроме экрана.

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

    Из Pro линейки стоит рассматривать только 15" 2015 с полноценным Core i7 и дискретным видео, ему есть что противопоставить остальным.
    Ответ написан
    8 комментариев
  • Какой Macbook выбрать для разработки? Air или Pro?

    alexyat
    @alexyat
    iOS Developer
    Пользуюсь вот такой машинкой, очень доволен. Модель md101, поменял планки памяти на 16Gb + SSD 512Gb. Рекомендую данный ноут, если хотите сэкономить.
    3318e7d4f30546ed93faf7cf2486a531.png
    Ответ написан
    1 комментарий
  • Какой Macbook выбрать для разработки? Air или Pro?

    roblip
    @roblip
    Здесь может быть Ваша реклама
    Лучше всего конечно же Pro. А по бюджету смотри сам, если денег почти нету, бери любой Mac Book приблизительно 13 года в хорошем б/у состоянии, благо, коих есть много.
    Ответ написан
    1 комментарий
  • Какой Macbook выбрать для разработки? Air или Pro?

    @LiguidCool
    Тут смотря что вы разрабатывает, но на самом деле абсолютно срать какой ноут (если только вы не софт под эпл клепаете).
    Я к тому что смысл брать вертолет, чтоб добраться до магаза через улицу?
    Ответ написан
    4 комментария
  • Какой Macbook выбрать для разработки? Air или Pro?

    zorro76
    @zorro76
    Что за бред, извините
    (несколько ide`шек [а-ля intellij idea], запущенных одновременно, с довольно большими проектами).


    а если по существу то конечно же Pro, странно вообще сравнивать эти два продукта

    UPD: для разработки подойдет любой мало-мальский ноут
    Ответ написан
  • Как установить шапку группы через VK API?

    Sanasol
    @Sanasol
    нельзя просто так взять и загуглить ошибку
    Первый POST-запрос уходит на https://vk.com/al_page.php
    параметры: act=owner_photo_box&al=1&cover=1&oid=-85297730

    https://gist.github.com/S-anasol/643d82f34ca6518d4...

    В ответе будет код с инициализатором аплоада и в нем будет ссылка включающая первый _sig
    Дальше уже _sig от запроса к запросу меняется, там еще один участвует, его получаете после выполнения первого аплоада.
    Ответ написан
  • Redirect определенного GET на другой домен?

    roswell
    @roswell
    и швец, и жнец, и на дуде игрец
    RewriteCond %{QUERY_STRING} (ref=)([^&]+)|(referer=)([^&]+)
    RewriteRule ^(.*)$ http://example.org/?%{QUERY_STRING} [R=301,L]

    По необходимости, 301 нужно заменить на 302.
    Ответ написан
    3 комментария
  • Возможна-ли верстка макета по картинке в формате JPEG?

    werty1001
    @werty1001
    undefined
    Бегите.
    Ответ написан
    Комментировать
  • Когда можно назвать себя программистом(PHP)?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    Не нужно непосредственно в слово программист вкладыать дополнительные понятия, их можно написать отдельными словами рядом.

    Если ваша основная деятельность - программирование - вы программист.
    Если вы зарабатываете программированием - вы профессиональный программист.
    Если вы пишете качественный код и выпускаете востребованный продукт - вы хороший программист.
    Ответ написан
    3 комментария