AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: База знаний и проекты
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.06.2007, 14:17   #1  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
If iexplore.exe suxx...
X++:
    // I use Firefox ;-)
    handle = WinAPI::regOpenKey(#HKEY_CURRENT_USER, 'SOFTWARE\\Classes\\HTTP\\shell\\open\\command', #KEY_READ);
    if (! handle)
        handle = WinAPI::regOpenKey(#HKEY_CLASSES_ROOT, 'HTTP\\shell\\open\\command', #KEY_READ);
    if (handle)
    {
        regValue = WinAPI::regGetValue(handle, '');
        if (regValue && typeOf(conpeek(regValue, 1)) == Types::String)
            browserPath = conpeek(regValue, 1); // like "C:\Programme\Internet Explorer\IEXPLORE.EXE" -nohome
                                                // or   C:\PROGRA~1\MOZILL~1\FIREFOX.EXE -url "%1" -requestPending

        // cut off the optional command-line parameters
        quoteOpenPos = strfind(browserPath, '\"', 1, strlen(browserPath));
        quoteClosPos = strfind(browserPath, '\"', quoteOpenPos+1, strlen(browserPath));
        if (quoteOpenPos == 1 && quoteClosPos)
        {
            browserPath = substr(browserPath, quoteOpenPos, quoteClosPos-quoteOpenPos+1);
        }
        else
        {
            browserPath = strrem(browserPath, '\"');
            // from the beginning till the first space before a parameter
            do
            {
                spacePos = strfind(browserPath, ' ', spacePos+1, strlen(browserPath));
            }
            while(spacePos && strfind(browserPath, '\\.', spacePos+1, strlen(browserPath)));

            if (spacePos)
                browserPath = substr(browserPath, 1, spacePos-1);
        }
    }
    if (! browserPath)
        browserPath = #IEXPLORE_PATH;

    WinAPI::shellExecute(browserPath, url);
}
За это сообщение автора поблагодарили: gl00mie (2).
Старый 28.06.2007, 14:30   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
А что должно произойти?

Кроме того, если нужно отрыть страничку, то можно просто вызвать WinAPI::shellExecute(url); и не париться
__________________
Axapta v.3.0 sp5 kr2
Старый 28.06.2007, 14:32   #3  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Можно. Я ожидал такого комментария. Только подумайте о Trustworthy Computing: как насчет открыть ссылочку "format C:"?
Старый 28.06.2007, 14:41   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Можно.
Можно это сделать из управления компом и из меню пуск.

Только вы под Win2000+ попробуйте это сделать

А вообще, захотелось понять, при чем здесь subj?
__________________
Axapta v.3.0 sp5 kr2
Старый 28.06.2007, 14:42   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
есть еще info.urlLookup
За это сообщение автора поблагодарили: EVGL (3).
Старый 28.06.2007, 14:50   #6  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от belugin Посмотреть сообщение
есть еще info.urlLookup
Респект! Рулит. Кривой, правда, метод какой-то, файлы почем зря сохраняет...
Старый 28.06.2007, 14:53   #7  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от AndyD Посмотреть сообщение
А вообще, захотелось понять, при чем здесь subj?
Очень просто: в DAX, особенно версии 4.0, огульно используется конструкция WinAPI::shellExecute("IEXPLORE.EXE", url). Хотя чего еще можно ожидать от программистов Microsoft?! Не поддержки же конкурентов.
Цитата:
Только вы под Win2000+ попробуйте это сделать
Спасибо, но что-то удерживает от этого интересного эксперимента.

Последний раз редактировалось EVGL; 28.06.2007 в 14:56.
Старый 28.06.2007, 14:58   #8  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Женя, по моему ты перегибаешь палку
__________________
Axapta v.3.0 sp5 kr2
Старый 28.06.2007, 15:38   #9  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от AndyD Посмотреть сообщение
Женя, по моему ты перегибаешь палку
Знаю. Так просто, proof of concept...
Старый 29.06.2007, 09:54   #10  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от EVGL Посмотреть сообщение
Можно. Я ожидал такого комментария. Только подумайте о Trustworthy Computing: как насчет открыть ссылочку "format C:"?
Цитата:
Сообщение от EVGL Посмотреть сообщение
Спасибо, но что-то удерживает от этого интересного эксперимента.
Во-первых, ничего страшного не произойдет - даже с правами локального администратора: в винде, чтобы отформатировать раздел, его надо эксклюзивно залочить, а с загрузочным разделом винда это сделать не позволит

Во-вторых, в ветку HKCU\Software\Classes\HTTP\shell\open\command какая-нить вредоносная прога может записать что угодно. В-тертьих, "оберегать" пользователя надо не за счет предотвращения запуска программы format, а за счет ограничения прав доступа, в т.ч. запрета запуска определенных программ (либо запуска любых программ, кроме определенных) через групповые политики...

PS. Скриншот сделан с моего рабочего компа, а не с какой-нить vmware
Старый 29.06.2007, 09:59   #11  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
наверное имеется ввиду такой сценарий атаки. Допустим, есть в CustTable поле URL. Один пользователь вносит туда значение, а другой, допустим, нажимает на кнопку "перейти".
Старый 29.06.2007, 10:17   #12  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от belugin Посмотреть сообщение
наверное имеется ввиду такой сценарий атаки. Допустим, есть в CustTable поле URL. Один пользователь вносит туда значение, а другой, допустим, нажимает на кнопку "перейти".
И что? как приведенный код или использование WinAPI::shellExecute("iexplore.exe", url) поможет в этом случае? Такие вопросы надо решать при проектировании системы, а не за счет универсальных затычек в механизме открытия URL-ов, imho. К слову, если один пользователь ввел в поле URL http-ссылку на "левый" сайт, а другой решил по ней перейти, то MSIE помочь как раз-таки может - если администраторы озаботились настроить в групповых политиках параметры безопасности для различных зон и перечни сайтов, в них входящих.
За это сообщение автора поблагодарили: EVGL (3).
Старый 29.06.2007, 10:23   #13  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Мне кажется есть некоторая разница между переходом на левый сайт и удалением всего из MyDocuments, например
Старый 29.06.2007, 11:26   #14  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от belugin Посмотреть сообщение
Мне кажется есть некоторая разница между переходом на левый сайт и удалением всего из MyDocuments, например
1. Не храните рабочие (или вообще важные) документы на локальном компьютере.
2. Резевное копирование никто не отменял.
3. Надо смотреть, куда переходишь, а не просто жать кнопки.

Кроме того, мне лично не удалось воспроизвести "удаление всего из MyDocuments", правда, проверял в AX3...
Старый 29.06.2007, 11:35   #15  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от gl00mie Посмотреть сообщение
1. Не храните рабочие (или вообще важные) документы на локальном компьютере.
2. Резевное копирование никто не отменял.
3. Надо смотреть, куда переходишь, а не просто жать кнопки.


4. Работать в каcке и бронежилете.

Цитата:
Кроме того, мне лично не удалось воспроизвести "удаление всего из MyDocuments", правда, проверял в AX3...
Я боюсь, там используется метод Infolog...

Во-вторых, сработает что-то типа \\mycomp\share\deleteall.bat
Старый 29.06.2007, 11:43   #16  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Спасибо за дискуссию. Мне хотелось узнать, существует ли лучший способ. Тот, что реализован в Infolog, явно не самый элегантный. Пожалуй, в итоге соглашусь с gl00mie и AndyD. Действительно, если злоумышленник сумел забить "нехорошую" ссылку в поле БД Аксапта, все уже пропало, поскольку возможность стереть все данные в БД явно заманчивее альтернативы удалить все файлы с локального компьютера. А если подонок завелся в собственной компании, то у него тоже есть масса более простых методов саботажа, чем такой.

Так что все же, наверное, просто WinAPI::shellExecute(url).
Старый 29.06.2007, 11:51   #17  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от belugin Посмотреть сообщение
Цитата:
Сообщение от gl00mie Посмотреть сообщение
1. Не храните рабочие (или вообще важные) документы на локальном компьютере.
2. Резевное копирование никто не отменял.
3. Надо смотреть, куда переходишь, а не просто жать кнопки.
4. Работать в каcке и бронежилете.
Imho совершенно неуместный в данном случае юмор. «Каждая строчка правил техники безопасности написана кровью» На моей памяти было очень много случаев, когда винты в рабочих станциях пользователей накрывались, ёрзания мышкой приводили к "пропаже" целых каталогов, сисадмины при обновлении виндов "забывали" перенести пользовательские файлы и форматировали разделы целиком, etc. Такое происходит сплошь и рядом, и работать без резервных копий - это все равно что мыть снаружи окна на 40-м этаже, стоя на подоконнике.
Цитата:
Сообщение от belugin Посмотреть сообщение
Я боюсь, там используется метод Infolog... Во-вторых, сработает что-то типа \\mycomp\share\deleteall.bat
В трешке у меня постоянно браузер открывается, причем Opera, а не MSIE - и предлагает различные варианты действий с файлом \\mycomp\share\deleteall.bat: открыть, сохранить...
Теги
url, winapi, безопасность, групповая политика, как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
if (record) vs if (record.RecId) kashperuk DAX: Программирование 18 27.11.2008 18:53
Solutions Monkey: Enterprise Portal on WSS 3.0 – Ax32.exe.config Blog bot DAX Blogs 0 09.01.2007 22:51
Fred Shen: Always use recId to know if a select statement returns a record Blog bot DAX Blogs 0 28.10.2006 16:40
InventJournalTrans DreamCreator DAX: Программирование 7 14.12.2004 14:48
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:22.