• 2016 год - Google Maps или Yandex.Карты?

    nazarpc
    @nazarpc
    Open Source enthusiast
    На счёт другого - у Яндекса лучше документация как по мне.
    Ответ написан
    Комментировать
  • Как реализовать POST или GET запросы на vk api через javascript & jquery?

    ixon
    @ixon Автор вопроса
    
    var req="https://api.vk.com/method/users.get?access_token=СекретныйТокен"
    $.ajax({
        url : req,
        type : "GET",
        dataType : "jsonp",
        success : function(msg){
    		console.log(msg.response[0]);
        }
    });
    Ответ написан
    Комментировать
  • Как правильно хранить сессию при разработке JSON API?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Авторизуетесь и получаете токен (он же и есть ID-сессии).
    2. Подписывайте этим токеном запрос к API (хэшируете) и отправляете запрос с токеном на сервер: в отдельном заголовке или как один из параметров при вызове API (лично я - предпочитаю 2-й вариант (аналог jwt): шифровать и тестить мне проще).

    UPD: вот тут - продолжение...
    Ответ написан
  • Как правильно хранить сессию при разработке JSON API?

    miraage
    @miraage
    Старый прогер
    Авторизация по токену.
    При аутентификации отдаем клиенту его токен.
    Он его посылает, скажем через заголовки: X-Access-Token: bla bla bla
    И на сервере проверяете.
    Разумеется, не поленитесь https для такого дела поднять.
    Ответ написан
    1 комментарий
  • Как передавать пароль от браузера серверу, как его хранить на сервере и проверять корректность?

    gzhegow
    @gzhegow
    aka "ОбнимиБизнесмена"
    В зависимости от степени безопасности.

    Если разбить все это на "по-проще", общий принцип такой:

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

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

    Локальных хранилищ тоже бывает куча целая:
    - кукисы (хранится прямо в браузере указанное время)
    - сессии (хранится на сервере, но в кукисах есть ключ к ячейке в "банке", который опять же могут угнать)
    - ... еще десятки способов, о которых знают только крутые кодеры, которые считают себя крутыми просто потому, что их знают, на деле с точки зрения создания ценности людям - бесполезные знания

    Как ты понимаешь, это иллюзия безопасности, а не гарантия.

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

    Вот еще тема, которую василий сказал - шифровать пароль уже на стороне клиента в момент отправки формы яваскриптом. Представьте себя хакером. Вы получили пакеты какого-то чувака, поставили компьютер на расшифровку, подключив десяток видеокарт, расшифровываете пароль, а вместо него видите 64 символьный хеш, ну то есть он прямо от клиента таким вышел. После этого будут маты от того, что теперь массив видюх нужно заставить еще и ключевую фразу из хеша выдрать. Ну то есть еще время декодирования увеличивается. Если загнаться то хеш может быть не просто хешем md5() а например md5 от md5 от развернутой строки прибавленной к md5() прямой строки, прокинутой через побитовый сдвиг на один разряд - ну то есть даже в этом закодировать последовательность действий. При отсутствии https - наиболее надежный способ.

    И потом - программисты Yii не рекомендуют использовать фунцию md5(). Почему? Потому что она быстрая очень. И при переборе пароля массивом видеокарт перебирается он шибко быстро. Поэтому рекомендуют использовать hash функцию, которая для создания хеша использует побольше времени, несколько секунд скажем. При написании синхронной программы (сайта на php, например) - это заставит юзера подождать после регистрации секунды 3-4 лишних, но если загнаться то процесс генерации пароля можно запихнуть в асинхронщину, а пользователю сразу токен выдать, то есть пароль ему сгенерируется чуть позже. Таким образом - за счет более длинной хеш-функции по времени хакеру потребуется куда больше времени - то есть юзеру на прямое создание пароля 5 секунд, а хакеру на перебор нескольких миллионов паролей понадобится несколько лет. Никто ему не заплатит 10 косарей баксов, чтобы сломать ваш долбанный пароль ВКонтакте. Если банковская сфера - опять же как писал выше - хеш от хеша, да развернуть пару раз, да трижды порубить, потом постучать в бубен и все это в хеш еще раз и вуаля - декодирование пароля займет 100 лет.

    Еще значит, При малейшем намеки на несоответствие токена или внезапное изменение - сервак говорит "тю, дядя, давайка пройди второй этап авторизации, а то я не верю, что это реально ты" и просит приложить палец. Или ввести номер, получив СМС. Или вставить ключ-карту синюю (duke nukem hello). Но и тут есть взлом - ключ карту украсть, смс-ку - попросить телефон, приложить палец = отрубить руку, вырвать глаз и тд

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

    Так и тут - данные отправляемые в виде нулей и единиц. Компьютеры их так же легко перекодируют в пароль, как и закодировали. Чтобы этого не было, придумали ШИФРОВАТЬ строку в одну сторону. У сервака есть трафарет, у пользователя другой трафарет. Сервак шифрует своим, но назад можно расшифровать только пользовательским. Вернее можно и сторонним конечно, но современные компьютеры сделают это за много лет, и потому никто не заморачивается особо, производительность не та.

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

    Так что авторизация - она простая. Вся надежда на шифрование. А сертификат, на котором пол-мира делает бабло - это средство подтверждения того, что компьютер умеет шифровать. Интересно, что он кончается каждый год, как будто в прошлом году компьютер умел шифровать, а в этом вдруг разучился. На деле конечно - просто гоните бабло, иначе покажем красный крестик вместо зеленого замочка, и в гугле понизим, так что гоните бабки. Вот.
    Ответ написан
    1 комментарий
  • Правильно ли я понял, как работает токен?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Да. Все верно.

    Единственное что добавлю, пересылать токен лучше в заголовках. Причем желательно, поскольку механизм аутентификации нестандартный, в заголовке X-Authorization. Если вы решите хранить токен в куках и передавать его, это желательно должны быть http-only куки (хотя в случае JWT не обязательно) и на сервере должна быть защита от CSRF атак.

    Так же поскольку у нас по сети гуляют по сути креденшелы, важно использовать SSL. Благо сегодня есть lets-encrypt что бы бесплатно получить сертификаты.

    И последнее, что бы обезопасить себя еще, используйте refresh-токены. То есть наш уникальный токен который гуляет в каждом запросе будет иметь ограничение по времени жизни (скажем 5 минут) и для его обновления мы будем использовать refresh-токен. При получении refresh токена клиенту уходит новая пара токен + refresh-токен.

    Таким образом у злоумышленника который перехватил токен пользователя будет окно всего в 5 минут что бы что-то сделать.
    Ответ написан
    13 комментариев
  • Почему не приходят обновления Win10 (1809)?

    @res2001
    Developer, ex-admin
    Ждите, до всех дойдет очередь :-)
    Ответ написан
    Комментировать
  • C# под linux или windows?

    NYMEZIDE
    @NYMEZIDE
    резюме - ivanfilatov.ru
    Для простых проектов Visual Studio Code хватает вполне. Поправить, собрать проект. Можно всякими плагинами обмазаться опять же.

    Еще есть платный JetBrains Rider, но кому он не нравится после Visual Studio, кто-то не готов платить.

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

    eucalipt
    @eucalipt
    Самоделкин.
    Одним языком ты точно не обойдешься.
    Начни с изучения каркаса, с html (и да, я знаю, что это не язык :D), бери сразу html 5, не читай старой литературы по нему.

    После займись стилизацией, за это отвечает css. Бери сразу css3, не возвращайся в 2000-е, тебе это не надо. Обычно стилизацию рассматривают вместе с каркасом. То есть большинство учебной лит-ры - это html+css (в новых подразумевается, что это html5 + css3).

    По ходу изучения (а лучше после) берись за JS, то бишь Java Script. Он отвечает за "красивости на сайте". lern.javascript.ru - для отличного начала.

    После всего этого (а лучше разом с JS) бери php. Советую именно его, потому что распространен, много отличных гайдов (в том числе и на оф. сайте). Можешь читать старую лит-ру, НО только чтобы понять основные конструкции, такие как if, for, while, foreach и так далее. Сам же код пиши в ООП стиле, это будет большим плюсом для тебя в будущем, так как сейчас все активно на него переходят. Дойдя до MySQL бери MySQLi (это относится к PHP).

    Этих знаний должно быть достаточно. Для полного освоения и плавания без надувных кругов рассчитывай на 2 - 3 года обучения.
    Ответ написан
    Комментировать
  • Какие IDE есть для C# и какой из них лучше?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    если вы под виндой - Visual Studio 2017 Community абсолютно бесплатна, и ни кто с ней рядом не сравняется на сегодняшний день

    под линуксом, скорее всего JetBrains Rider будет самым продвинутыми, но он платный и под линукс и под винду

    есть кроссплатформенный SharpDevelop, но на мой взгляд это уже мазохизм

    есть кросплатформенная Visual Studio Code, но она еще слабее, главная ее фишка в легкости написания плагинов поддержки огромного количества языков, которые путных IDE вообще не имеют

    все зависит от цели. если цель C# в Windows - только Visual Studio 2017 (если хотите бесплатно, то повторюсь - Community редакция)
    Ответ написан
    1 комментарий
  • Знаю Kotlin, не знаю Java. Возьмут ли на работу?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Зная только Kotlin вы серьёзно сокращаете количество мест, в которые можете устроится. Это плохая карьерная стратегия.
    Ответ написан
    Комментировать
  • C# vs Php. Что выбрать?

    scanit74
    @scanit74
    WEB-разработчик
    C# нельзя рассматривать как только серверный язык.
    Ответ написан
    1 комментарий
  • Как научиться писать такой ООП код?

    @Copperfield
    Android dude
    Мне в школе физрук говорил:"Чтобы много подтягиваться - нужно много подтягиваться".
    Ответ написан
    Комментировать
  • Как править чужой код так чтоб его не сломать?

    @just_hank_moody
    1 - Всегда делать бэкап чужого кода до внесения даже любых изменений.
    2 - Скопировать чужой код и развернуть на своем сервере. Дальше править без страха, что сломается что-то и клиент это увидит.
    Ответ написан
    Комментировать
  • Django vs Asp.net?

    Привет.

    1. Если живешь в 2 столицах России или одной из столиц Украина, РБ, то можешь учить Python (django), там есть работа в неплохих фирмах. Плюс на Python достаточно комфортно собирать проекты под себя (что я лично и делаю).

    2. Если живешь в каком-то другом городе (более менее адекватном по размеру), то однозначно .net(java), так как и ЗП хорошие, и работу будет проще найти. Да и в плане переезда в столицы, со знанием .net(java) будет проще.

    3. Если живешь в жопе, то учи php/1c.

    Я лично начинал с Python, собрал под них своим проекты (которые окупаются, что хорошо), потом взял себе стек Java - автоматизация. Накопил денег и буду переезжать в Питер уже под конкретные предложения по работе. на Java. С Питон ныкался повсюду, нигде не брали зеленого.
    Ответ написан
    Комментировать
  • PHP+Symfony или Ruby+RoR?

    @Winner_DE
    Ruby RoR+
    Ответ написан
    Комментировать
  • Что лучше выбрать для обчения asp.net или php?

    @JuniorNoobie
    Сижу в поддержке, пишу мелкие проекты
    Ну да, не совсем корректное сравнение. MVC - это целая система, реализующая архитектурный паттерн. Помимо основного языка, на котором написана платформа (C#) необходимо изучить еще множество вещей: модели, представления, контроллеры, ОРМ, роутинг, принятые соглашения. Также не помешает знание "прикладных" вещей: IIS, .NET, Visual Studio, база данных (Oracle, MS SQL, etc)

    И не соглашусь, что мало литературы по ASP.NET MVC. Ее полно. Даже есть неплохие русскоязычные ресурсы, такие как Professorweb и metanit.
    Ответ написан
    Комментировать
  • Не могу определится с выбором: PHP или Python для веб?

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


    ИМХО, PHP умирает. Все, что могу про него сказать:
    • популярные CMSки (Wordpress, Drupal, Joomla!, etc.) написаны на нем и было бы неплохо его знать
    • проще найти работу (больше заказов)
    • большая конкуренция среди разработчиков
    • куча говнокода
    Ответ написан
    7 комментариев
  • Как сделать правильный выбор между C# и Java?

    MalkovVladimir73
    @MalkovVladimir73
    Fullstack (node + vue.js)
    Как человек, который 1.5 года учился java, а потом вышел работать с C# - точно могу сказать, разница несущественна. Специалисту всё равно какой инструмент он использует. Хотите наиболее производительное мобильное приложение - используете java, хотите desktop windows, вэб бэкенд, игры - C# (имхо). ML - python. Микроконтроллеры - C (C++). Хотите делать качественное ПО для всего вышеперечисленного, тогда я вам огорчу, серебряной пули нет придется использовать разные инструменты, но с опытом, вы поймёте, что различия весьма преувеличены.
    Ответ написан
    2 комментария