• Куда копать дальше по информационной безопасности?

    Zoominger
    @Zoominger
    System Integrator
    Прочитал ерунду.
    Вы не безопасник. Хотите в безопасность - идите в ВУЗ на профильную специальность.
    Сейчас же вы то тут, то там хватаете какие-то пенки абсолютно без понимания, что вы, вообще, делаете.
    Ответ написан
    4 комментария
  • Куда копать дальше по информационной безопасности?

    Jump
    @Jump
    Системный администратор со стажем.
    Ну не конец же это, не чувствую себя супер безопасником который знает все проникновения и защиты от них.
    Ну во первых безопасник не обязательно должен знать все способы проникновения и защиты от них. Более того этого знать просто невозможно.

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

    Большая часть работы безопасника не имеет никакого отношения к указанным вами вещам, вроде XSS, методов защиты и атак на Wifi сети и Веб приложения, и.т.п.

    Что нужно прочитать что бы научится программировать микроконтроллеры, USB киллеры, Raspberry Pi и всякие другие приколы?)
    Книжки, какие нибудь. Или в интернете интересующую информацию поискать.
    К ИБ это не имеет никакого отношения.
    Ответ написан
    Комментировать
  • Куда копать дальше по информационной безопасности?

    athacker
    @athacker
    Коллеги выше правильно говорят. Частные знания о некоторых самых простых векторов атаки типа XSS или SQL injection -- это даже не верхушка айсберга, это снежинка на его вершине.

    ИБ включает в себя массу самых разных методологий, процессов и технических средств. Попробуйте хотя бы основы системного подхода к ИБ почитать: https://habr.com/ru/company/vps_house/blog/343110/
    Ответ написан
    Комментировать
  • Что вообще может C#?

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

    sergey-gornostaev
    @sergey-gornostaev Куратор тега C
    Седой и строгий
    #ifdef _WIN32
      #include <winsock2.h>
    #else
      #include <sys/socket.h>
    #endif

    И так же, в макросы завернуть WSAStartup и WSACleanup Для общих задач может вполне хватить.
    Ответ написан
    2 комментария
  • В чем отличия C++ и C# ?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Тут все пишут про отличия. Рискну написать про сходства.

    Во-первых, о чём бы ни писала Елена и Си++ и C# - оба языки общего назначения. Даже больше, оказывается - C# ни разу не заточён под объёмную библиотеку (или фреймворк) .NET, однако с ним намного, много проще. Но если таки учитывать .NET, то для Си++ есть Boost и Qt, так что здесь скорее паритет - библиотек для обоих хватает.
    Во-вторых, сложность разработки на Си++ часто преувеличена. Разве только дисциплины надо поболее - выстрелить в ногу здесь попроще. Однако при этом Си++ будет чутка более гибкий и без танцев с бубнами unmanaged код не запустить на C#. Если внезапно потребуется.
    В-третьих, оба языка, раз они общего назначения, таки мультипарадигмальные. То есть они реализуют большинство практик. И хотя Си++ развивается довольно медленно, сейчас Си++ резко догнал C# в плане нереализованных фич (здесь как минимум лямбды). Ну и метапрограммирования у Си++ поболее будет (наглая ложь).
    В-четвёртых, оба языка кроссплатформеные. Впрочем, C# будет более кроссплатформенный, чем Си++. Разве только тот же Qt резко стёр границы, но это не значит почти ничего - C# компилируется в тот же самый CIL для всех платформ, Си++ - в совершенно разный код для разных платформ (i386, amd64, ARM Cortex-AXX).
    Наконец, в пятых, синтаксис у них действительно очень похож. Оба языка принадлежат к семейству Алгол-подобных, так что и брейсы, и остальные скобки здесь имеют примерно одно предназначение.

    Различия, которые казалось бы делают языки совершенно разными, таки не столь принципиальны на том уровне абстракции, на котором был задан вопрос. А различия действительно колоссальны: C# - managed код, что означает, что скомпилированный код будет исполнятся не на прямую в CPU, а на специальной виртуальной машине. Это съедает производительность, но сильно облегчает перенос кода. Ну и потом, C# - полупроприетарный ответ Java (что интересно, так как получается, что C# - более свободный, чем Java), которая была создана как замена сложному и небезопасному C++ в том числе.

    В общем, как человек, который начал давно с C#, продолжив C++ и по пути изучив Python, Java, D и другую ООП-чушь могу с уверенностью сказать, что разницы в общем-то и нет... То есть придётся немного проникнуться в чуть другую философию и выяснить, какие проблемы более новый язык пытался решить. Но если подходить к этому, как подошёл lookid, то это скорее не как изучать языки одной языковой группы, а как изучать один и тот же язык в разное время или в разных сферах.

    Почему так? Потому что ООП... Оно как бы ООП, ничего сверхъестесственного ни один язык не предлагает, это не Haskell, и тем более не Brainfuck. Так что принципиально общие вещи в них будут. То подмножество, что реализует машину Тьюринга - у них общие. Сами посмотрите: циклы, ветвления, передача аргументов, арифметика... С небольшими правками всё совершенно одинаковое. Да, Дмитрий совершенно прав, traits на C# не повторишь, ибо та аналогия будет уже не traits, однако... Это уже [programming_language] related, то есть это попытка совладать с особенностями.

    Немного пруфов: лично я ходящий пруф. Зная C++ и C# и немного Java я просто начал программировать на Python. При том, что Python даже алголоподобным не принадлежит. А всё потому, что логика одна и та же, хотя различий между Python и C(++|#) намного, много больше. Но не читая почти никаких туториалов, пройдясь галопом по европам с документацией сейчас я знаю python достаточно для серьёзного проекта.

    UPD. По поводу метапрограммирования... Таки рантайм рефлекшн шарпа тащит. И хотя ни макросов, ни шаблонов, ничего. Но изменять код на лету - это уже очень круто. По дефолту плюсы так не умеют, и хотя шаблоны с макросами тащат, сильно, очень сильно тащат и вытаскивают его, Си++, со дна, надо признать - рефлешн у шарпа будет поинтереснее. Извиняюсь за дезу.
    Ответ написан
    6 комментариев
  • Почему keyerror?

    @MAGistr_MTM
    Учусь программировать
    я потом сделаю проверку есть ли он там вообще

    Вот из-за этого у вас и KeyError
    Ответ написан
    3 комментария
  • Стоит ли заниматься программированием в моем возрасте?

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

    Люди вообще часто становятся заложниками правил, которых в реальности не существует. Существуют только законы физики, остальное мы сами себе придумываем.
    Ответ написан
    20 комментариев
  • Как распределить строку на разные переменные?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега C
    Седой и строгий
    strtok прекрасно работает везде
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    #define MAX_TOKENS 3
    #define DELIMITER "\n"
    
    int main(int argc, char* argv[]) {
      char s[30] = "file2.py\n"
                   "file3.py\n\n"  // Хоть одинарные, хоть двойные
                   "file.py\n";
      char* tokens[MAX_TOKENS];
    
      char* token = strtok(s, DELIMITER);
      for (int i = 0; (token != NULL) && (i < MAX_TOKENS); i++) {
        tokens[i] = token;
        token = strtok(NULL, DELIMITER);
      }
      
      for (int i = 0; i < MAX_TOKENS; i++)
        printf("%s\n", tokens[i]);
    
      return EXIT_SUCCESS;
    }
    Ответ написан
    Комментировать
  • Как вернуть изменённый аргумент(массив) через функцию?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега C
    Седой и строгий
    Указатель надо использовать
    #include <stdio.h>
    #include <stdlib.h>
    
    #define BUF_SIZE 128
    
    int name_pc(char* buf) {
      FILE *p = popen("hostname", "r");
      if (p == NULL)
        return 0;
    
      int r = 1;
      if (!fgets(buf, BUF_SIZE, p))
        r = 0;
    
      pclose(p);
      return r;
    }
    
    int main(int argc, char* argv[]) {
      char hostname[BUF_SIZE];
    
      if (!name_pc(hostname)) {
        fputs("Error!", stderr);
        return EXIT_FAILURE;
      }
      
      printf("%s\n", hostname);
    
      return EXIT_SUCCESS;
    }
    Ответ написан
    Комментировать
  • Не могу разобраться в коде?

    myjcom
    @myjcom
    Больше всего я тут не понял эти моменты: _Bool
    Что значит _Bool это стиль такой? Или другой bool тип данных? Не понятно...


    https://en.cppreference.com/w/c/types/boolean
    Ответ написан
    1 комментарий
  • Хелп, не получается отправить SMTP через Python?

    @Meiblorn
    msg.attach(MIMEText(body, msg.as_string()))
    Вы в месседж добавляете "самого себя". Уберите это и все должно заработать

    Как понимаю, должно быть msg.attach(MIMEText(body, 'plain'))
    Ответ написан
    1 комментарий
  • Правда ли что рынок веб разработки "перегрет"?

    politon
    @politon
    HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
    Перегрет... говнокодерами, тыжпрограммистами.
    И все благодаря говногугру исповедующих говнокурсы "Выучить ЯП за десять минут".
    Толковых мало
    Ответ написан
    1 комментарий
  • Правда ли что рынок веб разработки "перегрет"?

    OTCloud
    @OTCloud
    Программирование и Архитектура ПО
    100% перегрет, но не программистами или веб-мастерами, а индивидами, которые решили что веб это просто и легко и не стоит сильно париться над своими скиллами и знаниями.
    Ответ написан
    8 комментариев
  • Стоит ли учить Delphi или VBA просто для себя?

    erge
    @erge
    Примус починяю
    Если вы знаете C++ C# и Python , то на фига вам Delphi и теме более Visual Basic, который ни разу не кроссплатформенный (хотя да, mono же?) ???
    все что угодно можно написать на вышеперечисленной тройке.
    а на C++ никто не мешает писать в процедурном стиле как на С :))
    Не понимаю вообще если честно ))
    У вас много лишнего времени наверно?
    Ответ написан
  • Как создать файл и записать туда код программы?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    Обычно, если вам такое нужно, код оторый вы записываете, неизвестен заранее. Иначе проще было бы таскать его в виде готового файла сразу. Но почти всегда общая структура определена и нужно вставить какие-то части.
    Создайте шаблон в виде отдельного файла или, если он небольшой, то можно и в виде строки в коде. Дальше замените нужные части в шаблоне на тот код, который вы сгенерировали.

    #include <regex>
    #include <string>
    #include <iostream>
    
    std::string generate_code()
    {
        return "   print('generated')";
        //place your gen code here
    }
    
    int main()
    {
        const std::string code_template = 
        "def generated():\n"
        "$1\n" 
        "\n"
        "print('hello')\n"
        "generated()\n"
        "print('world')\n";
        const std::regex placeholder("\\$1");
        const std::string code = std::regex_replace(code_template,
            placeholder, generate_code());
        std::cout << code << std::endl;
        return 0;
    }
    Ответ написан
    Комментировать
  • Кто как защищает от пиратства свое видео?

    irishmann
    @irishmann
    Научись пользоваться дебаггером
    Самый лучший способ защиты - не выкладывать в интернет.
    Ответ написан
    2 комментария
  • С или С++ для вирусов?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Что удобнее, то и используйте.
    Они одинаково пригодны для написания логики приложения вируса и взаимодействия с API операционной системы.
    А для специфических вещей, хаков, эксплуатации уязвимостей, возможно, потребуются ассемблерные вставки или иные языки.
    Ответ написан