ПредишенСледващото

Microsoft Office пакет от програми - е не само де факто стандарт офис софтуер, но също така е много сложен и богат на функции среда, която ви позволява да създадете решения, предназначени основно за използване на функции на Microsoft Office и автоматизиране на рутинни действията на потребителя при работа с документи. Тази софтуерна платформа, наречена модел обект на Microsoft Office (Microsoft Office Модел Object), или автоматизация на Microsoft Office (Microsoft Office Automation) се основава на модела на COM обект и богат набор от упражнения, които осигуряват достъп до почти всеки елемент или действие на разположение на потребителя по време на работа с Microsoft Office чрез графичен интерфейс.


Моделът обект на Microsoft Word (частично)

Говорейки за програмиране за Microsoft Office, често включват "вътрешни" програми - макроси, написани на VBA (Visual Basic за приложения, изпълнението на Visual Basic в Microsoft Office) и вграден директно в документа.


Създаване на макрос за Microsoft Excel

Microsoft офис автоматизация и друга вратичка за макро-вирус

Оферта на потребителя да се даде възможност на макроси в документа, съдържащи зловреден код

Microsoft Office съоръжения са на разположение не само от макроса, но и от "външни" софтуер на всеки език, който поддържа COM. Последното може да се компилира програми в езици като C ++ или Delphi, да управлявате приложения в Java или .Net, или скриптове в VBScript и PowerShell - COM технологията е достъпна за почти всичко, което може да се извърши под Windows.

Microsoft офис автоматизация и друга вратичка за макро-вирус

Достъп до обектния модел на Microsoft Office PowerShell

Microsoft Office Модел на обекта е приложение за Microsoft Office под формата на COM-обекти. Но има и възможност за добавяне на документи и други COM-обекти - ActiveX контроли, които не принадлежат към Microsoft Office, но присъстват в операционната система. Да бъдат включени в документа, тези елементи могат да взаимодействат с кода на макроси или да изпълняват собствените си код, базиран на документа добавя към "свойства» - свойства на обекта. В способните ръце на вграждането на ActiveX контроли може да доведе и до произволно изпълнение на код, така че най-новите версии на Microsoft Office по подразбиране отрекъл стартирането вградени ActiveX с изключение на "бял списък" на елементите. Потребителите обаче в този случай може изрично да позволи изпълнение, ако желаете.


Предупреждение вградени ActiveX

Предложението за допускане (или отрече) активно съдържание да тече отидете на потребителя, когато документът е отворен, по обичайния начин в подходящото приложение. Какво се случва, ако отворите същия документ се използва моделът, обект на Microsoft Office?
Примери за такива програми - голямо разнообразие на различни езици и различни задачи:

Пример за VBScript

Пример на PowerShell

В проучването на такива примери само веднъж имаме в кода е интересен ред:

Application.AutomationSecurity собственост (Excel)
...
Връща или задава една константа, която представлява MsoAutomationSecurity режима за защита на Microsoft Excel използва, когато програмно отваряне на файлове.
...
MsoAutomationSecurity може да бъде един от тези MsoAutomationSecurity константи.

msoAutomationSecurityByUI. Използва настройката за сигурност, посочен в диалоговия прозорец за сигурност. |
msoAutomationSecurityForceDisable. Изключва всички макроси във всички файлове, отворени програмно без да се показва никакви сигнали за сигурност.
msoAutomationSecurityLow. Активира всички макроси. Това е стойността по подразбиране при стартиране на приложението.

Оказва се, че ако Microsoft Office приложение работи като клетъчна автоматизация, макро код за отваряне на документа ще бъдат направени по подразбиране. Освен ако, разбира се, не е изрично промените нивото на сигурност на програмата за контрол. Тази настройка по подразбиране е независим от изложен потребителя или администратора. Освен макроси също ще бъдат заредени и изпълнени кодовите елементи на всяко ActiveX, добавя към документа.

Microsoft офис автоматизация и друга вратичка за макро-вирус

Макросът когато документът е отворен през Automation

Това не е очевидна функция, както изглежда, рядко се взема предвид. Например, офис софтуер от други производители се използват модела на обекта за данни на Microsoft Office за внос и износ на Word и Excel документи. Доста често има примери за 1С:

1C, наречени "лечения" могат да използват и обектния модел на COM като цяло и Microsoft Office в частност. Някои полезни лечение, предоставяни на ползвателите от производителя, например, обработване на "ZagruzkaDannyhIzTablichnogoDokumenta.epf" ви позволява да качвате данни от външни документи за маса на база данни.

Microsoft офис автоматизация и друга вратичка за макро-вирус

Макросът когато отворите документа през 1С обработка

Както може да се види, AutomationSecurity имот е забравена и програмисти 1C.
От една страна, това е класически пример за това, което е необходимо да се мисли за сигурността в процеса на програмиране, независимо от какъв език е бил използван. От друга страна, поради каква причина е принуден Microsoft за по-строги защитни настройки на Microsoft Office оставят незащитени обектен модел?

Свързани статии

Подкрепете проекта - споделете линка, благодаря!