28.06.2007, 14:17 | #1 |
Banned
|
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 |
Участник
|
А что должно произойти?
Кроме того, если нужно отрыть страничку, то можно просто вызвать WinAPI::shellExecute(url); и не париться
__________________
Axapta v.3.0 sp5 kr2 |
|
28.06.2007, 14:32 | #3 |
Banned
|
Можно. Я ожидал такого комментария. Только подумайте о Trustworthy Computing: как насчет открыть ссылочку "format C:"?
|
|
28.06.2007, 14:41 | #4 |
Участник
|
Можно.
Можно это сделать из управления компом и из меню пуск. Только вы под Win2000+ попробуйте это сделать А вообще, захотелось понять, при чем здесь subj?
__________________
Axapta v.3.0 sp5 kr2 |
|
28.06.2007, 14:42 | #5 |
Участник
|
есть еще info.urlLookup
|
|
|
За это сообщение автора поблагодарили: EVGL (3). |
28.06.2007, 14:50 | #6 |
Banned
|
Цитата:
Сообщение от belugin
есть еще info.urlLookup
|
|
28.06.2007, 14:53 | #7 |
Banned
|
Очень просто: в DAX, особенно версии 4.0, огульно используется конструкция WinAPI::shellExecute("IEXPLORE.EXE", url). Хотя чего еще можно ожидать от программистов Microsoft?! Не поддержки же конкурентов.
Цитата:
Только вы под Win2000+ попробуйте это сделать
Последний раз редактировалось EVGL; 28.06.2007 в 14:56. |
|
28.06.2007, 14:58 | #8 |
Участник
|
Женя, по моему ты перегибаешь палку
__________________
Axapta v.3.0 sp5 kr2 |
|
28.06.2007, 15:38 | #9 |
Banned
|
|
|
29.06.2007, 09:54 | #10 |
Участник
|
Цитата:
Во-вторых, в ветку HKCU\Software\Classes\HTTP\shell\open\command какая-нить вредоносная прога может записать что угодно. В-тертьих, "оберегать" пользователя надо не за счет предотвращения запуска программы format, а за счет ограничения прав доступа, в т.ч. запрета запуска определенных программ (либо запуска любых программ, кроме определенных) через групповые политики... PS. Скриншот сделан с моего рабочего компа, а не с какой-нить vmware |
|
29.06.2007, 09:59 | #11 |
Участник
|
наверное имеется ввиду такой сценарий атаки. Допустим, есть в CustTable поле URL. Один пользователь вносит туда значение, а другой, допустим, нажимает на кнопку "перейти".
|
|
29.06.2007, 10:17 | #12 |
Участник
|
И что? как приведенный код или использование WinAPI::shellExecute("iexplore.exe", url) поможет в этом случае? Такие вопросы надо решать при проектировании системы, а не за счет универсальных затычек в механизме открытия URL-ов, imho. К слову, если один пользователь ввел в поле URL http-ссылку на "левый" сайт, а другой решил по ней перейти, то MSIE помочь как раз-таки может - если администраторы озаботились настроить в групповых политиках параметры безопасности для различных зон и перечни сайтов, в них входящих.
|
|
|
За это сообщение автора поблагодарили: EVGL (3). |
29.06.2007, 10:23 | #13 |
Участник
|
Мне кажется есть некоторая разница между переходом на левый сайт и удалением всего из MyDocuments, например
|
|
29.06.2007, 11:26 | #14 |
Участник
|
Цитата:
2. Резевное копирование никто не отменял. 3. Надо смотреть, куда переходишь, а не просто жать кнопки. Кроме того, мне лично не удалось воспроизвести "удаление всего из MyDocuments", правда, проверял в AX3... |
|
29.06.2007, 11:35 | #15 |
Участник
|
Цитата:
4. Работать в каcке и бронежилете. Цитата:
Кроме того, мне лично не удалось воспроизвести "удаление всего из MyDocuments", правда, проверял в AX3...
Во-вторых, сработает что-то типа \\mycomp\share\deleteall.bat |
|
29.06.2007, 11:43 | #16 |
Banned
|
Спасибо за дискуссию. Мне хотелось узнать, существует ли лучший способ. Тот, что реализован в Infolog, явно не самый элегантный. Пожалуй, в итоге соглашусь с gl00mie и AndyD. Действительно, если злоумышленник сумел забить "нехорошую" ссылку в поле БД Аксапта, все уже пропало, поскольку возможность стереть все данные в БД явно заманчивее альтернативы удалить все файлы с локального компьютера. А если подонок завелся в собственной компании, то у него тоже есть масса более простых методов саботажа, чем такой.
Так что все же, наверное, просто WinAPI::shellExecute(url). |
|
29.06.2007, 11:51 | #17 |
Участник
|
Цитата:
|
|
Теги |
url, winapi, безопасность, групповая политика, как правильно |
|
|