Pull to refresh
23
0
Александр @WarFair

User

Send message

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

Я как-то тоже раздумывал, что можно сделать с линуксовыми тачками в формате применения групповых политик - просто теоретические размышления - если кто-то сделает тулзу (а может и уже сделал) для линукса, которая будет выдавать результат в формате gpresult для хоста и юзера, с возможностью для каждого параметра из политик выполнять соответствующий заданный скрипт (данный параметр применяется скриптом gp_param_1.sh), то можно было бы тем же паппетом поддерживать в актуальном состоянии эти самые скрипты, а параметрами рулить из ад - условно в крон и/или автозапуск добавляем задачу на применение политик для хоста (чтоб исполнялось от рута), а в автостарт юзеру добавлялся скрипт, который уже от имени юзера будет задавать настройки в соответствии с политиками для юзера - для чего скрипт придумали, то по сути реализовали для поддержки, для чего не придумали, ну значит не поддерживается...

Опять же, размышления просто теоретические, просто потому что как итог отказ от ad в сторону freeipa и его аналогов (ald от астры например) это тоже входит в план импортозамещения, и изобретать временные костыли может оказаться немного бесполезным

Конечно, я не требую от ЯП такой защиты. ибо как уже сказали это дело архитектуры. Как я понимаю, лучшее что в случае XSS или SQL Injection можно сделать, это не доверять входным данным, а то как проверка будет делаться под капотом зависит от языка и инструментов. Тоже самое будет работать в случае статьи —
из-за того, что при копировании данных в буфер фиксированного размера их размер не проверяется. Размер данных и они сами напрямую берутся из сетевого пакета.
— не доверяй тому что прислали и перепроверяй. В известных мне ЯП все позволяли определить размер полученных данных, но даже если и такого сделать нельзя, то всегда можно написать нечто вроде
byte *buffer = new byte [sizeFromOtherSide];
memcpy(buffer, dataFromOtherSide, sizeFromOtherSide);

Хотя я бы тут тоже сделал проверку на максимальный размер буффера, который можно создать…
Я не знаток TypeScript, но тем не менее (это более вопрос для саморазвития нежели остальные негативные интерпретации, но) разве строгая типизация поможет защититься от XSS или же от SQL Injection в голом но типизированном PHP?
Скачал, поигрался. В принципе да, у меня задумка такая же, разница в том, чему именно таким способом обучают — в моем случае пошаговое создание класса, в koans'е по сути обзор всех возможностей явы. К тому же в koans'е нужно редактировать уже существующий код, в моем случае файл с классом и его наполнение происходит с нуля самим обучаемым.
В принципе да, ничто не убережет человека от написания такого «не комильфо», однако что помешает показать результат знающему человеку? В таком случае работоспособность кода уже будет проверена, и нужно будет лишь указать на архитектурные ошибки и на явные костыли, выдать за такое лещей и отправить переделывать. Но в общем, согласен с тем что без помощи со стороны не обойтись :)
Да, я раньше играл :) И да, идея у меня похожа. Однако в кодханте сделано в виде, который скорее можно назвать игрой — уровни, оценки. В моем варианте проверяется не умение угадать, какой оператор используется в данном примере, а заставить человека самого придумать способ как это сделать, при этом ограничивая лишь итоговый результат, а не способ, которым это можно сделать.
Просветите незнающего студента, это зачем нужно иметь столько серверов?
Насчет LEAVE — я так же изучаю все по этому сайту — perlcabal.org. Признаю свою ошибку — неправильно понял фразу про раскручивание стека при исключениях. Но опять же, я не с потолка говорил, как он должен работать, а хоть и ошибочно, но читал про этот вопрос. Вобщем да, с LEAVE мой косяк.

Насчет же «вот есть такой прекрасный блок, он делает кажется то-то, но так ли это я не знаю, потому что запустить компилятор не смог, но я всё равно напишу свой представление о нём а кто не согласен тот дурак» и «А то что в действительности делает конструкция — не важно, главное тиснуть статейку» — все что я описываю в статьях проверяется лично мною на примерах, и если что-то не компилируется, то лишь упоминаю о существовании этого (в статье я не стал писать свое предположение о LEAVE, так как сам понимаю что это не проверено, и так делать нельзя).

Насчет грубости — грубость не так страшна если всё аргументировано.
Я написал такой «хамский» комментарий не из-за того что он не смог осилить конструкцию LEAVE, а из-за того, в какой форме этот комментарий был написан. Выражать свои мысли можно по разному — можно как Вы, указывая на то что не нравится, но при этом не перегибая палки, а можно как я или как в первом комменте.

Конкретно насчет блока LEAVE — он должен выполняться при любом выходе из блока, даже в случае исключений. Пример — если действия, которые должны быть обязательно выполнены для освобождения какого-либо ресурса поставить просто в конец блока, и вдруг произойдет исключение до этих самых действий, то выполнений данного блока остановится, и ресурс так и останется занятым. Поэтому все действия по освобождению блока можно перенести в LEAVE. Понимаю что я не описал такого в статье, так как не смог скомпилировать пример, но и нельзя говоить о том, что что-то в языке бесполезно, если не знаешь как именно это что-то должно работать.
Хамство? Возможно, но по моему мнению такой коммент ничего другого не заслуживает. Троллить первым же комментом в посте?
Потому что TIMTOWTDI — конструкция с форичем тоже есть, и если она нравится больше — используешь её, нет — юзаешь луп. А вообще, так посмотришь на коммент, и либо это какой-то очень жалкий троллинг, либо приперся какой-то рьяный питонист/рубист/{подставь название своего любимого языка}, который только и умеет на этом самом языке говнокодить, и во всех остальных языках ищет те конструкции которые и выучил.
Как я уже сказал, ?& и ?| означают логическое и/или, +& и +| означают бобитовое и/или. Да отличается от других языков. Возможно это сделано для того, чтобы было схожим с заданием логического и числового контекста — ?(), +(), возможно зачем-то ещё, чего я не понимаю. В любом случае, это врятли привнесет много проблем, а в моем случае — мне даже приятнее использовать данные операторы, чем те что в c++.
Чем же этот вариант хуже тех же операций в с++? (&&, ||)
В данном виде даже можно сразу понять, что делается именно логическое и(или), так как начинается с '?', а не побитовое (операции +&, +|).
Так же можно использовать и менее приоритетные аналоги — все теже 'or', 'and'.
Я возможно не правильно понял вопрос, но конкретно на <| жалуется что нет соответствующей закрывающей скобки, а созданный оператор prefix:<+-+>($a) сработал правильно, единственное возникают проблемы в распозновании операторов если сделать например 1 + +-+10, и для выделения необходимо ставить пробелы.
Вообще, если я правильно понял описанное в синопсах, то по задумке шестой перл может работать с кодом на пятом перле с помощью комманды use v5; или как то так. В итоге можно использовать уже имеющиеся наработки, но работает ли это сейчас — этого я не проверял, как нибудь можно будет попытаться.
Признаюсь да, некоторые вещи в синопсах описаны так, что я просто не понимаю зачем это нужно, и приходится их пропускать оставляя до момента прозрения, но то что я описал в предыдущих статьях по крайней мере для меня сложностей не вызывает, и это действительно приятно использовать. Так что не думаю что в шестом перле будет больше проблем, чем их можно было создать в пятом.
Я думаю тут важнее все таки будет понимание почему, или просто логически обоснованное предположение. Если человек не сможет предположить и обосновать свое предположение для такой простой вещи, то это уже будет показателем.
В винде на сколько я знаю есть интересный момент — если в памяти уже есть загруженная допустим CoolLib.dll, версии 1.1, а потом запускается приложение, которое содержит рядом с собой, в той же папке, AnotherLib.dll и CoolLib.dll но уже версии 1.2 при этом AnotherLib зависит от CoolLib, то новая версия в память подгружаться уже не станет. И если у вас сейчас нету проблем с левым софтом, то это ещё не значит что эти проблемы не могут появиться.
В случае же линукса и убунты в частности, тащить вместе с одним пакетом набор уже устаревших библиотек никто не собирается, а если вдруг старые версии прог не могут запуститься с новыми версиями библиотек в связи с тем что изменен набор функций в библиотеке, то как уже писалось выше в комментариях, автор библиотеки мудак, что не изменил ещё и версию в .so файле
Ну вообще да…
Но если так подумать… ведь как я понял, смысл класса — генерация строки запроса, т.е. фактическая подстановка переданных параметров, но в определенном виде.
Если смысл классов таков, то на мой взгляд логичным исходом подстановки пустого массива является как раз пропуск этого массива.
Всмысле получение строки
SELECT * FROM id NOT IN ()
В результате получается ошибка, но и по логике, мы не собирались ничего подставлять.
Я имею ввиду, ведь задача класса просто составить текст запроса на основе введенных данных. Проверка корректности введенных данных уже не является задачей данного класса.
Если бы человек хотел получить все данные, без каких либо ограничений, то написал другой запрос, а в данном случае, необходимо скорее использовать
$sqlpart = '';
if (!empty($var)) {
    $sqlpart = $db->parse(" AND field = ?s", $var);
}
$data = $db->getAll("SELECT * FROM table WHERE a=?i ?p", $id, $sqlpart);

Как по мне, так здесь уже начинают решаться надуманные задачи…
1

Information

Rating
Does not participate
Location
Волжский (Волгоградская обл.), Волгоградская обл., Россия
Date of birth
Registered
Activity