The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Атака через подстановку аргументов при использовании масок в..."
Отправлено all_glory_to_the_hypnotoad, 29-Июн-14 15:00 
> Будем ли мы дополнять его тегированием, или не будем, но резать строку на части всё равно придётся, потому что я вбиваю команды разбивая отдельные части пробелами.

Ты ничего не разбиваешь пробелами в командной строке, это фикция в твоей голове. Даёшь одну монолитную строчку интерпретатору который решает как её бить на части. Обычно твоя интуитивная фикция совпадает с тем, что делает (ba)sh интерпретатор, но не всегда.

Снижение расхождения между интуитивной интерпретацией человеком входных данных с фактическими это задача UI и его возможности снижения ошибок полностью ограниченны сверху протоколом передачи аргументов в программу. Выше речь идёт о последнем, т.е. о протоколе, а не о принципах устройства твой оболочки.

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

Всем срать что ты там делаешь у себя в командной строчке. (ba)sh используется для автоматизации различных процессов и большая часть проблем возникает именно здесь, а не у тебя в ручном режиме. Оснвная задача теггированя это дать возможность защиты от ошибок в автоматике.

> Расскажите мне, как вы планируете тегировать поток черектеров проходящий через pipe. Ведь список аргументов может генерироваться сторонним процессом, и передаваться в качестве аргументов целевому.

Я то тут причём? Мне лично до одного места как ты будешь решать эту проблему. Каждый делает всё в меру своего идиотизма. Даже сейчас так никто не делает если хоть как-то обеспокоен проблемами безопасности. В процесс переадются какие-то структруированные, либо скалярные тривиальные, данные на основе которых уже происходит генерация опций.

В очередной раз попробую заметить, теггирование идёт на уровне протокола передачи аргументов процессу. заколебали тупить.

> Отмечу, что теги придётся уметь хранить и в файле, потому, что создавая список файлов/опций для вызова программы (б.м. многократного), бывает удобно складывать список опций/файлов в файлик, по одной на строке.

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

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

Уже выше писал как это работает. Теги это хинты назначаения частей строки, не знаю почему вдруг у вас голове они стали типами. Легаси код, или в случае невозможности проставить тег, ставит неопределённый тег RAW.

Например

rm -rf some_path

в теггированном виде будет как

[ ('-rf', OPT), ('some_path', RAW)]

или

[ ('-rf', OPT), ('some_path', VALUE)]

или, если bash сделал свой комплит

[ ('-rf', OPT), ('some_path', PATH)]

или в легаси режиме

[ ('-rf', RAW), ('some_path', RAW)]

> В общем я к тому клоню, что если начать тегировать, то кончится это неуёмным использованием xml'я во все щели. Быть может, разработчики-таки придумают свой синтаксис, покомпактнее xml'я, но, боюсь, сильно лучше от этого не станет.

у вас в голове всё смешалось в одну кучу. Прежде чем рассуждать нужно разобраться где есть что.

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

это не решение, это последние беспомощные вопли утопающего.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру