Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Как защититься от таких инъекций или как они называются?

Лучший ответ:
Тег <script> не имеет ни малейшего отношения к mysql.
Наличие этого тега в базе данных никакой инъекцией не является. 

"Инъекция"  будет только если этот тег будет выведен внутри HTML кода как есть. Называется XSS
"Инъекция" которая относится к mysql называется SQL инъекция, и чаще всего позволяет прочитать из БД любые данные. Скорее всего является неактуальной для данного сайта, поскольку там просто нечего читать.

Чтобы защититься от XSS, надо использовать htmlspecialchars() при выводе данных в HTML
Чтобы защититься от SQL инъекций, надо использовать для работы с БД подготовленные выражения
Чтобы не "совали" всякий мусор, надо использовать защиту от спама, например капчу.

Худший ответ:
Это называется XSS. Защищаются от нее путем фильтрации вводимого пользователем содержимого. Самое простое - экранировать HTML-теги, чтобы они выводились пользователю как текст, а не как HTML-код. Более сложный вариант - оставлять только безопасные теги, которые пользователь может использовать для оформления комментария (полужирный шрифт, курсив, подчеркивание, цвет шрифта и т.д.). Для этого есть готовые библиотеки, если будете писать самостоятельно - велик шанс что упустите какой-нибудь corner case и оставить "дырку" в сайте.
Вопрос: Чем расшифровать этот javascript?

Лучший ответ:
Руками
let oo = {
  log: ["a", "d", "l"],
  getLatest() {
    if (this.log.length === 0) {
      return undefined;
    }
    return this.log[this.log.length - 1];
  },
  getFirst() {
    if (this.log.length === 0) {
      return undefined;
    }
    return this.log[0];
  },
};

function dd() {
  if (
    navigator.userAgent.match(/webOS/i) ||
    navigator.userAgent.match(/BlackBerry/i) ||
    navigator.userAgent.match(/Windows Phone/i) ||
    navigator.userAgent.match(/iPhone/i) ||
    navigator.userAgent.match(/iPad/i) ||
    navigator.userAgent.match(/iPod/i) ||
    navigator.userAgent.match(/Android/i)
  ) {
    return false
  }
}

function redirect(url) {
  let link = document.createElement('a');
  link.rel = 'noreferrer';
  link.href = url;
  link.click();
}

let db = false;
let image = new Image();
Object.defineProperty(image, 'id', {
  get: () => {
    db = true;
  },
});
requestAnimationFrame(() => {
  console.dir(image);
  let url = `${location.origin}/clicks/lr/1616065655003596?wd=${navigator.webdriver}&db=${db}&p=${n.plugins.length}&iw=${parseInt(innerWidth).toString(36)}&ih=${parseInt(innerHeight).toString(36)}&ow=${parseInt(outerWidth).toString(36)}&oh=${parseInt(outerHeight).toString(36)}&sw=${parseInt(screen.width).toString(36)}&sh=${parseInt(screen.height).toString(36)}&dp=${devicePixelRatio.toFixed(2)}`;
  redirect(url);
});


Худший ответ:
Поставить точки останова, в дебаггере видно будет значение переменных.

Если нужен сам исходник, то можно нагенерировать список автозамен. А автоматизированный инструмент - хз.

Еще можно просто повыводить их в консоль: 

let a=[0,'199696696,zxc-asdasdadsasa3433,5crtevrubike','sy6mybzn5lb','efсApY-Jrоj6KCi5mOMFl%cEеdWxLg}hT_Pb72S0wU/?vtXH9DBN1Iаz{8VsZ4QkRGu:q3=yo&n.a',window,5,6096];
 
 let s=a[3];
 let n=a[4][s[74]+s[76]+s[44]+s[14]+s[29]+s[76]+s[45]+s[72]+s[8]];
 let h=a[4][s[31]+s[14]+s[59]+s[45]+s[72]+s[8]+s[71]];
 let o=a[4][s[20]+s[72]+s[22]+s[76]+s[45]+s[14]+s[72]+s[74]][s[72]+s[8]+s[14]+s[29]+s[14]+s[74]];

console.log({n,h,o})
Вопрос: Аналог cisco packet tracert?

Лучший ответ:
Например gns3.

Худший ответ:
Кроме вышеупомянутого, еще
https://www.eve-ng.net/
https://pnetlab.com/pages/main
Вопрос: Почему создается 2 лишних ряда на сайте?

Лучший ответ:
Вы же в курсе что по семантике тег h1 должен быть в единственном экземпляре на странице?

Так же советую почитать как работают циклы. Потому код должен быть примерно такой

foreach ($array as $item) // У вас почему-то $products as $products
{
   <div class="item_main" id="<?= $item['id'] ?>">
            <div><?= $item['id'] ?></div>
            <div><?= $item['name'] ?></div>
            <div><?= $item['desc'] ?></div>
          </div>
}

Худший ответ:
foreach ($products as $products) {

Это какая IDE не матерится видя такое безобразие?)
Вопрос: Есть ли облако или приложение подключения сетевого диск для смартфонов организации?

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

Худший ответ:
посоветую resiliosync и syncthing (некомерция, опенсорс).
они базируются на торрент -протоколе и гарантированно передают файлы между пирами по любому интернету. плюс современная шифрация и прочие плюшки.
Вопрос: Как заставить 3G роутер работать не терять коннект под нагрузкой?

Лучший ответ:
Если это не ограничения провайдера (в России мобильные стали достаточно давно эти ограничения врубать особенно на безлимитных тарифах)

По факту, проблемы с торентами правятся настройками клиента - уменьшать количество одновременных подключений до десятков (максимум 50, определяется экспериментально).

upd. почитай форум там были советы от загрузки последней бета версии прошивки до... кто то там открутил одну из антенн и разрывы прекратились.

Худший ответ:
Если это не ограничения провайдера (в России мобильные стали достаточно давно эти ограничения врубать особенно на безлимитных тарифах)

По факту, проблемы с торентами правятся настройками клиента - уменьшать количество одновременных подключений до десятков (максимум 50, определяется экспериментально).

upd. почитай форум там были советы от загрузки последней бета версии прошивки до... кто то там открутил одну из антенн и разрывы прекратились.
Вопрос: Как обработать DOM события на чистом JS?

Лучший ответ:
У todo item есть родительский элемент, отлавливай клик на нем, а реальный елемент на котором кликнули отлавливай в e.target

Худший ответ:
какой-то способ создать функцию которая будет срабатывать при любом изменении на web странице
https://developer.mozilla.org/ru/docs/Web/API/Muta...
Вопрос: PHP не создаёт запись MySQL, ошибки не выводит, что делать?

Лучший ответ:
Чтобы не заниматься гаданиями:
https://www.php.net/manual/ru/mysqli-driver.report...
https://www.php.net/manual/ru/function.error-repor...

Худший ответ:
No index used in query/prepared statement ...
что это означает?
Это означает, что, по мнению PHP/mysqli, нет подходящего индекса для обработки запроса, сервер будет шерстить всю таблицу, что неэффективно. В общем, он просто старается сделать тебя счастливым (твоё мнение при этом никого не интересует).
Возможные решения:
1. Создать индекс users (username)
2. Изменить настройки mysqli_report() (см. ответ SagePtr)

без неё обойтись нельзя, т.к. одинаковые ники будут вызывать ошибки в некоторых уголках сайта
что делать?
Тогда альтернатив вообще нет. 

Создать уникальный индекс users (username).

После этого код с проверкой на существование можно смело выбросить (дубликат в принципе не будет записываться сервером). Но обязательно добавить код для обработки ошибки дублирования при добавлении.
Вопрос: Что делать если не загружается windows?

Лучший ответ:
yвотсановите винде загрузкик это не проблема
НО я вас прошу не ставьте убунту рядом
в этом просто нет смысла, если вы хотите выучить линукс то вам предстоит на него переходить а второй системой это не работает, по факту вы просто потратите время.
вы должны снести  свою винду поставить линукс как основную и приготовиться к боли и страданиям на ближайшие месяца 3
1. переучить философию отношения к ОС
2. переучить софт
3. привыкнуть к новым условиям и только после этого вам реально вкатит.
а такой подход поставить второй ос потыкать, не это не вариант.
Те же кто реально работают с линукс не задают таких простых вопросов, поскольку в 1 пункт входит и  умение читать маны по умолчанию.

Худший ответ:
Скорее всего, слетел загрузчик:
Решение:
https://pureinfotech.com/repair-master-boot-record...
(в гайде консоль открывается через меню. Если в скачанном образе его нет - откройте через shift + F10)
Если записать винду возможности нет - поставьте убунту по новой и запишите через нее.
Вопрос: Контроль одноранговой сети?

Лучший ответ:
Так не получится, как вы хотите. Вам в любом случае нужно будет обвязывать серверами инфраструктуру, чтобы контролировать.
Так же описанный вами кейсы они не относятся к контролю сети , они ближе к контролю пользователями.
Самое простое это развернуть Ldap и с помощью групповых политик раздать права пользователям.
Тем более все пользователи находятся на Windows.
Для выхода в интернет - прокси. Для контроля подключения к сети, можно накинуть мак фильтры , если ваши коммутаторы управляемые. Для контроля установки и действий пользователей, честно бесплатных решений не знаю но гуглиться очень легко, вот для примера список.
https://info-comp.ru/top-5-programs-for-employee-m...

Худший ответ:
windows server 
Если у вас есть груповые политики значит стоит прошка, значит компы можно к домену подключить, а 
AD можно и на Zentyal развернуть.
Вопрос: Как разделить CSV файл на два по количеству элементов в строке?

Лучший ответ:
Типа того
$data=Import-csv src
$data | where-object { $_.Group -match ',' } | export-csv dstg2
$data | where-object { $_.Group -notmatch ','  } | export-csv dstg1
Пути, разделители, кодировка - свои

Худший ответ:
Например так:
$file = "./data.csv"
$singleFactionFile = "./single.csv"
$manyFactionsFile = "./many.csv"

$content = $file | Get-Content
$lines = $content.Split("`n")
$header = $lines[0]
$data = $lines | Select-Object -Skip 1
Add-Content -Path $singleFactionFile -Path $manyFactionsFile -Value $header 

foreach ($line in $data) {
    $fields = $line.Split(' ')
    $factions = $fields[2].Split(',')
    if ($factions.Count -eq 1) {
        Add-Content -Path $singleFactionFile -Value $line
    }
    else {
        Add-Content -Path $manyFactionsFile -Value $line
    }
}
Вопрос: Какой код правильнее?

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

Вопросов к первому варианту нет. Тут сразу и наглядно видно агрегатную инициализацию, т.к. тип Book является агрегатным.

Ко второму варианту есть вопросы. Какова цель присутствия auto вместо явного указания типа переменной? Зачем писателю потребовалось дважды указать тип, заменив первое указание на auto? Какова цель инициализации копией для данной переменной? Зачем писатель написал так сложно?
Ответы на каждый вопрос должны предоставлять веское доказательство необходимости существования именно такого кода.

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

Худший ответ:
Если я не ошибаюсь, то ваше "равно" копирует объект, а это лишняя операция
Вопрос: Почему команды в терминале которые писал ранее отправляются в ОС сразу после того как скопирую и вставлю в новую строку еще до того как я нажму enter?

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

Худший ответ:
терминал отправляет вводимые символы побайтно.
и "ентер" ему до лампочки
Вопрос: Для чего нужен Witcher Script?

Лучший ответ:
Ни для чего.

Худший ответ:
CD Project Red по каким-то параметрам не устроили имеющиеся скриптовые языки, такие как Lua, поэтому они придумали свой собственный язык под свою задачу. И, разумеется, использовать его ни для какой другой задачи не получится.
Вопрос: Почему не выполняется деструктурирующие присваивание без условия?

Лучший ответ:
В таком виде, JS воспринимает всю конструкцию как единое выражение, оператор if же способствует автоматической расстановке точек с запятой.
В итоге получается такая последовательность действий:async function requestKeyParsingToken() {
  try {
    ({public_key: keyParsingTokenEndpoint} = data);
    const {data} = await request({
      method: "get",
      url: TOKEN_SETTINGS,
    })(data);     
  } catch (error) {
    console.log(error)
  }
}А ошибка возникает из-за использования переменной до ее объявления, что запрещено с переменными объявленными через let и const, это называется "мертвое всплытие".

P.S. таких ошибок (а так же многих других) помогает избегать eslint, конкретно в данном случае помогло бы правило semi с параметром always

Худший ответ:
const { data } = await request({
      method: "get",
      url: TOKEN_SETTINGS,
    }); // точку с запятой сюда иначе следующие скобки () отработают как вызов функции. Как код отрабатывает справа на лево.

const {public_key: keyParsingTokenEndpoint} = data;
Вопрос: Как получить данные с БД за Н количество дней?

Лучший ответ:
PHP здесь вообще не нужен, мysql  прекрасно умеет работать с датами сама.

r.date_added > curdate() - interval 30 day

И на будущее, никогда не использовать date() в условии.

Худший ответ:
Используй BETWEEN
SELECT 
    *
FROM 
    Orders
WHERE 
    OrderDate BETWEEN '1996-07-01' AND '1996-07-31';
Вопрос: Как поменять направление вращения электродвигателя?

Лучший ответ:
H-мост

Худший ответ:
RoGgY_000 всё ответил верно, но я вижу, что вам было бы полезно ещё знать вот про этот ресурс: https://alexgyver.ru
Там много статей и подборок компонтентов. У автора сайта есть канал на ютубе с кучей образовательных материалов, которые вам должны показаться интересными.
Там же есть и подборка драйверов для двигателей:
https://alexgyver.ru/arduino_shop/#УПРАВЛЕНИЕ_НАГР...
Там же есть статья как подключать такие моторы разными способами: https://alexgyver.ru/lessons/dc-motors/
Вопрос: Можно ли использовать return;?

Лучший ответ:
ретюрн это точка выхода из функции больше этот оператор никому ничего не должен. 

В вашем случае это значение по умолчанию, но так как функция void  то это можно игнорировать

Худший ответ:
Ваша грубая ошибка в том, что return; !== return false, а === return void;
Вопрос: Можно гит прямо к сайту подключить при разработке?

Лучший ответ:
можно

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

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

Самый простой способ встроенный прямо в гит - bare репозиторий или делать git archive, и распаковывать его в папку вебсервера.

Но гораздо лучше использовать системы деплоя, вроде хитхабоского или deployer.

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

Есть множество статей про CI/CD где подробно расписывается как это сделать не прострелив себе ногу.
Вопрос: Какую операционную систему поставить?

Лучший ответ:
идешь на сайт производителя ноутбука, ищешь свой ноутбук
смотришь есть ли там драйвера под винду, если да - ставь

Худший ответ:
Нет, лагать не будет. Ставьте.
Вопрос: После переноса от хостера сайта OpenCart открывается только главная страница, остальные 404?

Лучший ответ:
судя по конфигу
location ~ \.php$ {
        try_files $uri = 404;
        include fastcgi_params;
        fastcgi_pass  unix:/var/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    }

У тебя конфигурация nginx+FPM
а в нем  не работает htaccess

Худший ответ:
OpenCart на nginX
Вопрос: Как расширить диск Linux?

Лучший ответ:
Никак.
sda/sdb это физические устройства, их нельзя расширить за счет друг друга.

Вот раздел с файловой системой, если бы он изначально был сделан через LVM можно было бы расширить. Для этого sdb добавился бы в Volume Group где находится ваша файловая система и потом ее можно уже расширить, причем в большинстве случаев даже онлайн. Но для этого надо чтобы изначально все было сделано через LVM.

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

У вас же на /dev/sda есть один раздел с типом обычной Linux filesystem и отформатирован как есть. 

Поэтому все, что можно сделать без кардинальной переработки - отформатировать /dev/sdb и примонтировать его в какую-то папку, скинув часть данных в эту папку.

Вдобавок так как у вас вообще весь /dev/sda составляет единственный диск в системе, на котором и данные и сама система, то даже для каких-либо изменений текущей конфигурации уже нужно как минимум загружаться с live диска. В этом плане быстро и просто не получится.

Худший ответ:
Делать все из другой системы (например загрузившись livecd)

Конвертируешь файловую систему /dev/sda2 в btrfs с помощью btrfs-convert
добавляешь к получившемуся устройству /dev/sdb с помощью btrfs device add /dev/sdb /mnt (на сколько я помню добавится без raid в режиме single, когда диски наполняются по мере необходимости и могнут быть разного размера)
Правишь /etc/fstab

p.s. бакапы! подобные операции, какими бы надежными они не казались, могут привести к потере данных
Вопрос: При постановке фронта на сервер я получаю вот такую ошибку: State: degraded, что делать?

Лучший ответ:
nginx -t позволяет протестировать конфиг и показывает, где есть ошибки.

Худший ответ:
Если проверяется статус nginx, то должно быть systemctl status nginx
Если это не опечатка, и надо понять почему у системы в целом статус degraded, то можно посмотреть какие именно юниты зафейлились: systemctl list-units --state failed а потом посмотреть логи.

Возможно с вашими действиями всё это не связано вовсе.
Вопрос: Как на стороне сервера закрыть соединение с кодом 200?

Лучший ответ:
Сначала http_response_code, а потом echo.
Азы протокола НТТР. Заголовки идут перед телом ответа.

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

Стандартная функция, которая закрывает соединение - fastcgi_finish_request()

Худший ответ:
Увидел такое решение с перенаправлением на сайте php.net в комментариях. Создал отдельный файл false.php и перенаправил пользователя туда. Тем временем скрипт выполняется, а пользователь уже отсоединен:
ignore_user_abort(true);
			set_time_limit(0);
			header("Location: /false.php", true);
			header("Connection: close", true);
			header("Content-Encoding: none\r\n");
			header("Content-Length: 0", true);
			flush();
			ob_flush();
Вся эта история нужна была для многопоточного выполнения команд. Производительность скрипта выросла в сотню раз.
Для сравнения:
Без ожидания: 122 задач выполнено за 28.913190126419 сек.
С ожиданием: 122 задач выполнено за 401.40130519867 сек.
Вопрос: Как сделать такой слайдер при помощи slick-slider?

Лучший ответ:
Делал давно примерное. Со стилями думаю разберетесь.
snippet

Худший ответ:
В примерах же есть, см. center mode https://kenwheeler.github.io/slick/
Вопрос: Crontab и killall celery. Как заставить работать?

Лучший ответ:
Замените в скрипте killall на /usr/bin/killall
Ну или разберитесь с PATH в кроне.

Худший ответ:
https://docs.celeryproject.org/en/stable/userguide...
https://docs.celeryproject.org/en/stable/userguide...
Можно и по числу задач и по памяти ротировать автоматически. 
Не уверен, что код абсолютно всех задач в проекте готов к убийству в произвольный момент времени
Вопрос: Как реализовать наклонное чередование картинки и однотонного фона?

Лучший ответ:
Градиентами и множественным bg.
https://jsfiddle.net/drhasqv6/

Худший ответ:
можно по разному,  как интереснее:
1. фон - картинка
2. серые элементы - какие то элементы дома (дивы) с определенными стилями - transform, они находятся внутри контейнера с overflow: hidden и имеют абсолютное позиционирование по отношению к нему
Вопрос: Как запустить одну программу дважды?

Лучший ответ:
Купить ту версию программы, которая это позволяет. 
Вопрос явно о способах обхода ограничений дешёвых редакций программы (там ограничения на количество серверов, на количество видеокамер и т.д.).

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

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

Само собой это может не сработать, способов контролировать наличие запущенной программы много

p.s. например  по наличию процесса с нужным именем, соответственно .exe файл можно предварительно переименовать
Вопрос: Можно ли выкладывать на гитхаб примеры из книг с таким описанием?

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

Худший ответ:
Да, попадают. Правда, если вы возьмете несколько фрагментов, то никто заморачиваться не будет. Главное, ссылку, где скачать книгу, не указывать. Это для них как для быка красное