Задать вопрос
  • Знаете ли вы программистов которые в одиночку создали крутой проект?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Так не бывает, на какой-то стадии разработки всегда кто-то еще подключается. Там где у автора уже не хватает компетенции (например дизайн нарисовать).
    Ответ написан
    2 комментария
  • Как правильно написать авторизацию/аутентификацию?

    @enibeniraba
    Очень сильно упрощенно, без ООП и паттернов):
    Авторизация:
    session_start();
    if (!empty($_SESSION['user_id']))
    	die('Вы уже авторизованы');
    	
    $user = get_user_by_login($_POST['login']);
    if (!$user)
    	die('Пользователь не найден');
    	
    if ($_POST['pass'] !== $user['pass'])
    	die('Неверный пароль');
    
    $_SESSION['user_id'] = $user['id'];
    die('Привет, '.$user['login']);

    При этом в куки пользователя запишется session_id, а в сессию user_id.

    Проверка:
    session_start();
    if (empty($_SESSION['user_id']))
    	die('Нет прав');
    
    $user = get_user_by_id($_SESSION['user_id']);
    if (!$user || !$user['active'])
    {
    	unset($_SESSION['user_id']);
    	die('Нет прав');
    }


    Выход:
    session_start();
    unset($_SESSION['user_id']);


    Если нужен доступ только с одного устройства (последнего, с которого был вход), то храним на сервере последнюю сессию пользователя и при каждом запросе:
    if ($user['session_id'] !== session_id())
    {
    	unset($_SESSION['user_id']);
    	die('Нет прав');
    }


    Если с нескольких, то делать ничего не нужно.

    При oauth авторизации через внешние сервисы в сессии и куках будет все то же самое.
    В бд добавятся 2 поля auth_provider и auth_provider_id.
    В auth_provider у тебя будет vk или fb или google... в auth_provider_id - id пользователя в vk, fb...
    Когда юзер нажимает кнопку войти через vk, ты его редиректишь на контакт. Там он что-то делает. Потом контакт его редиректит к тебе с ?code=request_code.
    Ты используя code делаешь запрос к api контакта на получение access_token.
    Получив access_token, делаешь запрос к api на получение инфы о пользователе. В этой инфе должен быть какой-нибудь уникальный id (auth_provider_id).
    Если у тебя нет пользователя с таким auth_provider_id для провайдера vk, то создаешь его либо без логина, либо генерируешь что-нибудь, без пароля.
    Если пользователь был создан или он был до этого, помещаешь в сессию user.id и считаешь пользователя авторизованным.

    PS:
    По каждой строчке ответа есть нюансы, но думаю общая картина такая.
    Естественно лучше написать класс для пользователя, чтобы использовать что-то вроде:
    $user->is_auth();
    $user->auth_by_id($user_id);
    $user->unauth();
    Ответ написан
    13 комментариев
  • Что грозит вебмастеру, если он настроил парсинг новостей из новостного сайта в свой сайт?

    dmitriy_novikov
    @dmitriy_novikov
    Занимаюсь web-разработкой с 2010г. http://dmnv.ru
    плохое ранжирование за неуникальный контент грозит)
    если серьезно - читайте, что об этом пишут сайты-источники, разрешают они копирование материалов или нет, на каких условиях. ну и смотрите по ситуации.
    Ответ написан
    Комментировать
  • ООП в высоконагруженных проектах считается устаревшим?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Мужик не молодец в том плане что совсем функциональный подход это не круто ниразу, но вместе с тем как ни странно прав, в том что сложное ооп (по крайней мере в тех хайлоад проектах что я видел) - не применялось ниразу.
    Ответ написан
    Комментировать
  • Какие есть проекты на Си, которые можно использовать для изучения языка?

    alexk111
    @alexk111
    Автор Ботодрома (автоматизация Telegram, VK и др.)
    Я бы отталкивался от своих увлечений, так энтузиазм будет зашкаливать в процессе копания в исходниках, и изучение пойдет быстрее. В свое время изучил Си на исходниках MUD-сервера. Раньше были такие текстовые многопользовательские игрули) Очень хотелось сделать свой сервак со своим миром и локализацией под русский язык - Си пошел как по маслу :)
    Ответ написан
    4 комментария
  • Какие есть проекты на Си, которые можно использовать для изучения языка?

    Если захочется чего "покрупнее", чем предложил terrier, посмотрите SQLite - тоже проект написанный далеко не дураками).
    Ответ написан
    Комментировать
  • Какие есть проекты на Си, которые можно использовать для изучения языка?

    terrier
    @terrier
    GNU coreutils
    git.savannah.gnu.org/cgit/coreutils.git/tree
    Это те самые ls, chown, uniq, с которыми люди сталкиваются каждый день работая в консоли. Множество маленьких "проектиков", обильно прокомментированных и уже хорошо оттестированных "на кроликах". Каждая конкретная утилитка выполняет маленькую понятную задачку, но в реальном коде вскрываются множество тонкостей, о которых в базовых учебниках не пишут, а знать надо.
    Ответ написан
    1 комментарий
  • Как продумывать архитектуру java приложения?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Да зачем ее продумывать?! Пишем класс, пишем еще 10. О! Потом заводим пакет! О, еще 10 пакетов. Что-то пошло не так... Рефакторим - Мартин Фаулер злобно хихикает.
    Еще рефакторим, еще и еще.... Икона - Мартин Фаулер.
    Заказчики в трансе, разрабочики тоже... А мы все рефакторим и рефакторим..
    (сарказм)
    А структура приложению все-же нужна.
    1) Начните с постановки задачи
    2) Потом определите архитектуру приложения
    3) Определите как эта архитектура будет расширяться
    4) Начинайте писать
    5) Ну, если не получилось - рефакторить
    6) Закрыть проект - он бесполезен...

    Ах, ну я же забыл про тесты. И их тоже можно рефакторить.
    Agile Way to Hell.
    Ответ написан
    2 комментария
  • Что делать,если на сайт залит вредоносный файл?

    @ramjke
    1. Обновление движка. Регулярно выпускаются обновления безопасноти, закрывающие дыры в функционале движка. Если обновления не ставить - Вас регулярно будут ломать.
    2. Права на папки 755, права на файлы 644 и никак иначе.
    3. Разные владельцы для разных сайтов. Если сделаете несколько сайтов под одним владельцем - есть риск заражения всех сайтов.
    4. Никаких левых плагинов с непонятных сайтов. Только офф плагины и аддоны.
    5. Анализ логов доступа к сайту. Спросите у хостера, когда начала проявляться активность - и просмотрите POST запросы к Вашему сайту в админскую директорию. Анализ логов позволит установить айпишник злоумышленника и уязвимость.
    6. Скачайте свежий бекап сайта к себе на компьютер и прогоните его антивирусом - простейшие инъекции почти любой антивирь найдёт. Особая рекомендация - если есть комп с ОС Линукс, используйте Maldet - ориентирован на безопасность сайтов.
    habrahabr.ru/post/194346
    7. Следите за тем, чтобы на тех компах, с которых Вы заходите, не было вирусов. Никогда не сохраняйте пароли в браузере и в фтп-клиентах.
    8. Нет, смена паролей не помогает, если вредоносный файл был занесён через уязвимость. Помогает соблюдение вышеописанных правил + использование актуальной, регулярно обновляемой версии движка.
    9. Ограничьте доступв админку сайта, панели управления хостинга по айпишнику (то есть оставив вход только со своих айпишников) - бережёного б-г бережёт.
    Ответ написан
    2 комментария
  • Что делать,если на сайт залит вредоносный файл?

    @other_letter
    Как делаю я на мелких сайтиках (с крупными не работаю, ибо не мой профиль) - просто смотрю дату создания файлов (открываешь FTP чем-то типа TC и ищешь по дате). А потом уже эти файлики подробненько читаю.
    Ответ написан
    3 комментария
  • Что делать,если на сайт залит вредоносный файл?

    @vilgeforce
    Раздолбай и программист
    Алгоритм должен заключаться в залитии заведомо чистой копии и смене паролей. Никто не дает гарантии 100% обнаружения заразы.
    Ответ написан
    1 комментарий
  • Как продумывать архитектуру java приложения?

    @aol-nnov
    > Может учебник какой то посоветуете?
    google://паттерны проектирования java
    Ответ написан
    Комментировать
  • Какой банк выбрать фрилансеру в РФ с ИП для открытия р.с.?

    allard
    @allard
    Серийный программист
    ИП не обязан открывать счет для юр.лица, такого в законодательстве нет.
    Банки сами просят открывать ИП счет как юр.лицо, это их внутренние правила, что бы срубить денег.
    Так что, открывайте обычный счет на физ.лицо и пользуйтесь.
    Да, правильно говорили выше, открываете отдельный счет для перечислений и отдельный карточный счет Мастеркард, например. И все будет гуд.
    Я сам ИП уже 4 года, пользуюсь ВТБ24 и Промсвязь, как физ.лицо. Эти же счета предоставлял в налоговую, у налоговой вопросов не возникло. По закону имущество ИП и физ.лица неделимы, то есть если ты продаешь квартиру как физ.лицо, то документы в налоговую ты предоставляешь как ИП. Так же и с деньгами, если вам перечислили денежку на счет, вы сразу можете покупать на нее хлеб в магазине без проблем, это уже деньги вас как физ.лица.

    Если вдруг у банка возникают вопросы, просто уходите в другой банк. Хоть 800 руб/мес и не большие деньги, но зачем платить больше, если тот же функционал в ОнлайнБанкинге есть и у физ.лица.
    А вообще, меня бесят некоторые банки с их наглостью, их внутренние правила граничат с законностью...
    Ответ написан
    22 комментария
  • Какой банк выбрать фрилансеру в РФ с ИП для открытия р.с.?

    tlito
    @tlito
    drupal, c++, seo
    откройте себе обычный счет, физ. лица и пользуйтесб бесплатно.
    откройте карточку обычную АТМ и пользуйтесь бесплатно имея онлайн-банк
    откройте визу или мастер за 10 усд в год и сможете расплачиваться или переводить онлайн.
    Ответ написан
    5 комментариев
  • Как можно взломать учетную запись windows 7, не имея физического доступа к машине?

    morgane
    @morgane
    analyse comportementale
    Как угодно и легко.))
    Мне нравился всегда вариант подбросить флешку с ништяком под дверь конторы или в подъезде.
    Ответ написан
    1 комментарий
  • Научиться парсингу - с чего начать?

    @kappka
    Если хотите начать с чего-то приземленного не боясь запутаться - посмотрите в сторону xpath. Применяется почти во всех современных языках (в том числе C#, Java). Для практики самое то. Примерно разобравшись с тем, что это такое, сразу поставьте себе задачу. К примеру, спарсить много данных, залить всё в свою БД (сразу и с этим потренируетесь), и дальше, к примеру, строить графики (самый простой вариант).
    Ответ написан
    Комментировать
  • Где найти работу по удаленке в 40+ лет?

    alexk111
    @alexk111
    Автор Ботодрома (автоматизация Telegram, VK и др.)
    1. Возраст не имеет значения.
    2. Если нет навыков, тогда что еще Вы можете предложить рынку в обмен на деньги?
    Ответ написан
    Комментировать
  • Как ускорить работу программисту?

    @igorch96
    1. Не делай сам то, что может сделать компьютер (озадачь его)
    2. Не делай одну и ту же работу дважды (воспользуйся результатами сделанного, если это возможно)
    Ответ написан
    Комментировать
  • Кто должен публиковать мобильное приложение, клиент или разработчик?

    newross
    @newross
    Product owner
    Хорошим тоном является под каждого клиента, регистрировать новый аккаунт, если у него еще нет отдельного для проекта, и передавать ему все реквизиты, включая ключи для подписи приложения.
    Другое дело, если хотите привязать клиента к себе, тогда публикуйте приложение клиентов со своего аккаунта. Но это не лучшая стратегия, приводит ко множеству головняков на ровном месте. Даже отказаться от клиента мирно будет проблематично.
    Ответ написан
    2 комментария
  • Кто должен публиковать мобильное приложение, клиент или разработчик?

    thelongrunsmoke
    @thelongrunsmoke
    Программист
    Сейчас самый безболезненный способ, подписать и опубликовать приложение у себя. Потом, передаете ключи заказчику, и пишите в поддержку, что желаете перенести приложение в другой аккаунт.
    Ответ написан
    Комментировать