AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: База знаний и проекты
DAX
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 28.06.2007, 14:17   #1  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Join Date: 09.07.2002
Location: 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);
}
This post has been rated by: gl00mie (2).
Old 28.06.2007, 14:30   #2  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2494 (89) +++++++++
Join Date: 20.08.2005
А что должно произойти?

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

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

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

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

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

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

Кроме того, мне лично не удалось воспроизвести "удаление всего из MyDocuments", правда, проверял в AX3...
Old 29.06.2007, 11:35   #15  
belugin is offline
belugin
Участник
belugin's Avatar
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Join Date: 16.01.2004
Blog Entries: 5
Quote:
Originally Posted by gl00mie View Post
1. Не храните рабочие (или вообще важные) документы на локальном компьютере.
2. Резевное копирование никто не отменял.
3. Надо смотреть, куда переходишь, а не просто жать кнопки.


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

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

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

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

 

Similar Threads
Thread Thread Starter Forum Replies Last Post
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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 17:31.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.