Perpetuum informatio


Category Archive

The following is a list of all entries from the Administration category.

Решение проблем с производительностью IIS

Иногда бывает, что на сервере IIS начинают происходить странные дела. Так например у меня возникла ситуация, в которой один из процессов w3wp.exe время от времени начинал занимать под свои вычисления весь ресурс одного из ядер (был бы одноядерный процессор было бы использование процессора на 99% или 100%). Для тех, кто не знает процесс w3wp.exe кроме всего прочего отвечает за исполнение серверного кода ASP, ASP.NET скриптов. Ясно было что, какой-то скрипт производит излишнюю нагрузку. Такое поведение для меня было неприемлимым и я постарался решить эту задачу.

Continue reading this entry »


Вектор атаки на приложения с помощью активации деактивированных элементов интерфейса

Подавляющее большинство современных windows приложений использует стандартные элементы управления для собственных интерфейсов. Большое число приложений из этой группы реализует механизмы разграничения прав пользователей, выраженные в пользовательском интерфейсе при помощи соответствующих элементов управления. Это всем нам знакомые элементы выбора (radio button), флаги (check box), выпадающие списки (drop down menu) и некоторые другие.

Идея защиты в рассмотренных выше приложениях очень проста, если пользователь работающий с приложением имеет достаточно прав, то элементы интерфейса являются активными и пользователь может с ними взаимодействовать, меняя таким уровнем некоторые “привилегированные” параметры. В случае же если у пользователя таких прав недостаточно, то данные элементы становятся неактивными (визуально выражено, как более тусклая окраска или серый фон) и непривилегированный пользователь лишается возможности взаимодействия с этими элементами интерфейса. Идея элементарна, но в ней существует один очень  серьёзный недостаток.

Continue reading this entry »


IIS 6.0 + PHP + shell_exec()

При попытке исполнения shell_exec() в PHP запущном в режиме fcgi постоянно получал ошибку:
PHP Warning: shell_exec() [<a href='function.shell-exec'>function.shell-exec</a>]: Unable to execute 'C:\someprogram.exe' in D:\myfile.php on line 34

Большинство советов в Интернет советовало попробовать дать право, на исполнение файла someprogram.exe, пользователю Internet Guest Account (IUSR_ИМЯСЕРВЕРА). Однако этого оказалось недостаточно и ошибка не пропадала. После изучения поведения программы при помощи Process Monitor оказалось, что PHP также не хватает прав на командный интерпритатор cmd.exe. После добавления пользователя Internet Guest Account (IUSR_ИМЯСЕРВЕРА) в список доступа cmd.exe скрипт получил доступ к программе и ошибка исчезла.


Починка WSUS в случае неисправимой ошибки базы Windows Internal Database

Обнаружил сегодня, что мой WSUS отказывается запускаться и причиной тому является невозможность запуска базы данных WID(MICROSOFT##SSEE). Статья по восстановлению БД ни к чему не привела, а попытка переустановки WSUS закончилась крахом по причине невозможности обнаружить указанную в настройках базу данных. Решение которое помогло в моём случае заключалось в том, что необходимо изменить настройку WSUS отвечающую на вопрос установлена ли на данном сервере база WID (WYukon).
Выставив в ключе реестра

HKLM\SOFTWARE\Microsoft\Update Services\Server\Setup\wYukonInstalled

значение 0 (ноль), а также переименовав папку UpdateServicesDbFiles, я смог без проблем удалить и установить заново WSUS.
Надеюсь данное решение поможет кому-нибудь сэкономить время на поиск решения в случае поломки WSUS.


Запрет на внесение изменений в репозиторий, без указания комментария

Существует возможность отклонить commit в SVN, в случае когда пользователь ничего не указал в комментарии к внесённым изменениям. Для этого необходимо создать pre-commit hook который обнаружив отсутствие комментария сделает выход с ненулевым кодом завершения. Пример такого скрипта для Windows далее.
Continue reading this entry »


Удаление файлов Adobe Flash

Не раз сталкивался с проблемой, что операционная система отказывалась удалять файлы Flash6.ocx, Flash10c.ocx из папки %windir%\system32\Macromed\Flash даже в том случае, если выполняется попытка удаления из-под пользователя являющегося владельцем этих файлов (речь идёт о незарегестрирнованных в системе файлов, если же они зарегестрированы необходимо предварительно выполнить команду regsvr32 /u <путь_к_файлу>). Проблема заключается в том, что хитрый установщик Flash, при установке дополниетльно выставляет в ACL файлов информацию о запрете на запись (write) данных файлов для всех пользователей. Данное правило перекрывает все остальные права и не даёт удалить файлы в операционных системах считающихся с правами доступа NTFS. То есть для удаления достаточно зайти в свойства файа, на вкладке «Безопасность» (Security) нажать кнопку «Дополнительно» (Advanced) и удалить две строки описывающих запрет (Deny) на запись. После этого файлы удаляются без проблем.