Расширение возможностей защиты информации в MS Excel посредством применения макросов

Тип работы:
Реферат
Предмет:
Экономические науки


Узнать стоимость

Детальная информация о работе

Выдержка из работы

15. Потапов А. С. Распознавание образов и машинное восприятие: Общий подход на основе принципа минимальной длины описания. СПб.: Политехника, 2007. 548 с.
16. Ильин В. А., Позняк Э. Г. Линейная алгебра. 6-е изд. М.: Физматлит, 2010. 280 с. ISBN 978−59 221−0481−4.
17. Кострикин А. И. Введение в алгебру. Ч. 2: Линейная алгебра. 3-е. М.: Наука, 2004. 368 с. (Университетский учебник).
18. R. Blei Analysis in integer and fractional dimensions, New-York: Cambridge university press, 556 p. 2003. ISBN 0−511−1 266−7 (netLibrary Edition), ISBN 0−521−65 084−4 (hardback).
19. Куратовский К., Мостовский А. Теория множеств. М.: Мир, 1970. 416 с.
20. Столл Р. Р. Множества. Логика. Аксиоматические теории. М.: Просвещение, 1968. 232 с.
21. Мазуров В. Д. Математические методы распознавания образов. Уч. пособ. 2-е изд., доп. и перераб. Екатеринбург: Изд-во Урал. ун-та, 2010. 101 с.
22. Журавлев Ю. И., Рязанов В. В., Сенько О. В. Распознавание. Математические методы. Программная система. Практические применения. М.: Фазис, 2005. 159 с.
23. Лепский А. Е., Броневич А. Г. Математические методы распознавания образов. Таганрог: Изд-во ТТИ ЮФУ, 2009. 155 с.
24. Пытьев Ю. П. Неопределенные нечеткие модели и их применения. // Интеллектуальные системы. 2004. Т. 8. Вып. 1−4. С. 147−310.
25. Мирошников Л. В. и др. Диагностирование технического состояния автомобилей на автотранспортных предприятиях. М., «Транспорт», 1977. 263 с.
26. Набоких В. А. Диагностика электрооборудования автомобилей и тракторов. М.: ФОРУМ- НИЦ ИНФРА-М, 2013. 288 с.
27. Куликов А. В., Боюр B. C., Христов П. Н., Климов В. Е., Зимин В. А., Гирко В. Б. Автомобили LADA — диагностика. / Тольятти, 2006. 64 с.
28. Автомобиль Audi А6: Руководство по эксплуатации, техническому обслуживанию и ремонту. «Ротор», 2008. 560 с.
29. Тойота Приус. Модели 2003−2009 гг. выпуска. Устройство, техническое обслуживание и ремонт. М.: Легион-Автодата, 2009. 568 с.
30. ГАЗ-33 021, -2705 «Газель»: Руководство по эксплуатации, техническому обслуживанию и ремонту М.: Издательский Дом Третий Рим, 2007. 180 с.
31. Кузнецов А. Автомобили MA3−5336, -6303: Руководство по эксплуатации, техническому обслуживанию и ремонту. М.: ООО «ИДТР», 2011. 222 с.
УДК 004. 056. 052
РАСШИРЕНИЕ ВОЗМОЖНОСТЕЙ ЗАЩИТЫ ИНФОРМАЦИИ В MS EXCEL ПОСРЕДСТВОМ ПРИМЕНЕНИЯ МАКРОСОВ
© 2016
Иванов Сергей Леонидович, старший преподаватель кафедры «Информационные системы и технологии» Шамин Алексей Анатольевич, кандидат экономических наук, декан факультета «Информационные технологии и системы связи» Нижегородский государственный инженерно-экономический университет, Княгинино (Россия)
Аннотация. В статье поднимается проблема организации защиты информации при совместной работе с электронными таблицами MS Excel пользователей, имеющих различные права доступа к информации, которая в нем содержится. Дана краткая характеристика причин, вызывающих необходимость применения защиты информации и разграничения прав доступа в офисном делопроизводстве и документообороте. Дан краткий обзор возможностей встроенных механизмов защиты информации, предусмотренных в самом приложении, как на уровне файла в целом, так и на уровне отдельных листов книги Excel, в том числе возможности и способы защиты отдельных ячеек или диапазонов ячеек листа. Описан порядок их применения, проанализированы эффективность и ограниченность этих механизмов. Предлагается способ расширения возможностей защиты информации и разграничения прав доступа вплоть до запрета просмотра информации различным категориям пользователей, что невозможно обеспечить встроенными средствами защиты, но реально воплотить путем использования этих средств совместно со специально разработанными, с помощью встроенного в приложение MS Excel редактораVisual Basic, макросами. Показана актуальность подобного расширения возможностей защиты в современном делопроизводстве. На конкретном примере разобраны нюансы организации такой расширенной защиты, приведены программные коды макросов, обеспечивающих разграничение прав доступа,
подробно объяснен принцип их действия. Описаны процесс создания формы авторизации и порядок работы с ней. Проанализирована устойчивость предложенного варианта организации защиты информации к попыткам ее преодоления. На основе приведенного материала сделан вывод о реальности, простоте и эффективности предложенного метода.
Ключевые слова: авторизация, защита информации, логин, макрос, офисное делопроизводство, пароль, разграничение прав доступа, совместная работа, стандартные средства защиты, форма авторизации, электронные таблицы.
EMPOWERING INFORMATION SECURITY IN MS EXCEL THROUGH USE OF MACROS
© 2016
Ivanov Sergey Leonidovich, the senior teacher of the chair «Informational system and technologies» Shamin Alexey Anatolievich, candidate of economic Sciences, Dean of the faculty of «Information technology and communication systems» Nizhniy Novgorod state engineering-economic university, Knyaginino (Russia)
Annotation. The article raises the problem of protecting information when working with spreadsheets MS Excel users, having different access rights to the information that it contains. It is given a brief description of the reasons causing the necessity of application of information protection and access rights in office administration and documentation management. A brief overview of the features built-in protection mechanisms information provided in the application, both at the file level in General and at the level of individual sheets the Excel workbook, including the possibility and ways to protect individual cells or ranges of cells in a worksheet. Described the procedure for their application, analyzed the effectiveness and limitations of these mechanisms. A method is proposed to enhance data protection and access rights up to the ban view information of different categories of users, it is impossible to provide built-in protection, but it is possible to realize by using these tools together with a specially designed with built-in редактораVisual Basic MS Excel, macros. It is shown the relevance of such extension of protection capabilities in modern record keeping.
A specific example parsed the nuances of the organization of such extended protection, software codes macros that provide access rights, explained in detail the principle of their action. It is described the process of creating the login form and how to work with it. Analyzed the sustainability of the proposed variants of organization of information security attempts to overcome it. It is based on the above material the conclusion about the reality, the simplicity and effectiveness of the proposed method.
Keywords: authorization, data protection, login, macro, office, paperwork, password, access rights, collaboration, standard protection, authorization form, spreadsheet.
Необходимость защиты информации при совместной работе пользователей с книгой MS Excel возникает по следующим основным причинам:
— защита файла и его содержимого от случайной модификации, которую не всегда легко заметить и которая исказит используемые данные-
— защита конфиденциальной информации от лиц, не имеющих права доступа к ней.
В MS Excel предусмотрено несколько уровней защиты, ограничивающих доступ других пользователей как к самим файлам Excel, так и к их содержимому, чтобы предотвратить изменение данных и обеспечить безопасность важных сведений:
1. Ячейки с формулами, так же как и другие элементы листа, можно защитить, запретив доступ к ним всем пользователям книги или предоставив доступ отдельным пользователям к определенным диапазонам ячеек.
2. Можно применить защиту к отдельным элементам книги и защитить книгу целиком как от просмотра, так и от внесения изменений.
3. Если книга является общей, то можно запретить ее монопольное использование и сделать невозможным удаление журнала изменений.
4. Можно запретить вставку, удаление и форматирование столбцов и (или) строк, изменение содержимого заблокированных ячеек, а также перемещение курсора на разблокированные или заблокированные ячейки.
5. На листах с диаграммами можно защитить от внесения изменений содержимое диаграммы. Можно также защитить от изменения (или удаления) любые графические объекты на листе (например, поля). Защищенный лист диаграммы при этом будет обновляться всякий раз при изменении исходных данных диаграммы.
6. Можно разрешить определенным пользователям редактировать отдельные ячейки или диапазоны. Эти пользователи смогут редактировать даже заблокированные ячейки. Ограничения доступа будут вступать в силу только после включения защиты листа. Пользователи, имеющие разрешение, смогут редактировать диапазон, не вводя пароль. Другие пользователи, при попытке изменения данных в таком диапазоне, будут получать запрос на ввод пароля и только после его ввода смогут производить редактирование. Если ячейка будет принадлежать нескольким диапазонам, ее смогут редактировать только пользователи, имеющие полномочия на редактирование всех диапазонов. Если пользователь попытается одновременно редактировать несколько ячеек, обладая полномочиями на редактирование лишь некоторых из них, ему будет предложено выделить и отредактировать ячейки по очереди.
7. При защите книги можно запретить добавление или удаление ее листов, а также отображение скрытых листов.
8. Можно запретить изменение положения окна или его размеров. Действие такой защиты распространяется на всю книгу.
9. Общую книгу можно защитить, запретив ее монопольное использование или удаление журнала изменений книги.
10. Можно ограничить круг пользователей, имеющих возможность открывать книгу и использовать содержащиеся в ней данные, установив пароль на просмотр книги или сохранение внесенных в нее изменений.
11. Можно установить два разных пароля, один из которых будет необходимо вводить для открытия и просмотра книги, а другой — для внесения изменений в книгу и их сохранения.
Все перечисленные способы и варианты защиты в MS Excel 2007 обеспечиваются стандартными средствами приложения через меню вкладки «Рецензирование».
Более подробно ознакомиться с описанными выше вариантами можно в учебниках и самоучителях по данному приложению [1−5].
Если внимательно проанализировать перечень предоставляемых возможностей, то будет очевидно, что стандартные средства защиты более-менее успешно справляются с ограничением доступа на уровне открытия, редактирования и форматирования файла, однако не могут обеспечить разграничение прав доступа на просмотр информации внутри самого файла.
В то же время необходимость такого разграничения в современном документообороте и делопроизводстве очень актуальна. Существует множе-
ство «рабочих связок» должностных лиц, пересекающихся в работе с определенной информацией, но имеющих при этом разные права доступа к ней. Взять, к примеру, пару «менеджер — бухгалтер». Менеджер «поставляет» информацию бухгалтеру, а бухгалтер обрабатывает ее и получает в результате обработки информацию, которую менеджеру, в соответствии с его должностным положением, знать не положено.
Возможность работать в одном документе с налаженными внутренними связями и формулами для пользователей с различным уровнем доступа могла бы быть обеспечена, например, за счет скрытия отдельных листов для отдельных пользователей. Однако если скрыть определенные листы книги и поставить пароль на изменение структуры книги, то, во-первых, это может работать только в случае с двумя уровнями доступа (при большем количестве уже не получится). Во-вторых, пользователям более высокого уровня каждый раз при работе с файлом придется сначала, вводя пароль, открывать скрытые листы книги, а потом, по окончании работы, вновь скрывать их и вводить пароль, что вряд ли можно считать эффективным решением.
Поэтому в настоящее время эта проблема решается в основном двумя способами. Первый — это использование разных файлов для пользователей с различным уровнем доступа к информации с парольной защитой каждой книги. В этом варианте данные из файла в файл передаются с помощью ссылок и формул, что и является основным недостатком такого способа, потому что любое изменение структуры данных (например, ввод новых столбцов) или перемещение файлов приводит к необходимости полного обновления всех ссылок [6−12].
Второй способ — это передача данных программным путем с использованием механизмов ADO. NET, которые позволяют работать с файлом, не открывая его. В этом случае при определенном старании можно частично снять как проблему зависимости файла от его расположения, так и привязку к структуре, но это потребует значительного увеличения объема программного кода, участия в разработке этого кода профессиональных программистов и усложнит манипуляции с файлами [13−15].
Поэтому оба эти варианта не слишком удобны и эффективны для работы, плюс к вышеперечисленным недостаткам приводят к значительному дублированию информации.
Тем не менее идею скрытия отдельных листов для отдельных пользователей, заявленную выше, можно решить, создав для решения этой задачи макросы средствами Visual Basic for Application.
Рассмотрим подобное решение для уже упоминавшейся выше связки «менеджер-бухгалтер» на примере рабочей книги Excel, которая состоит из шести рабочих листов: Start — лист, появляющийся при открытии книги и не содержащий важной информации, Master Data — лист со справочными данными, Logistics — лист для работы с данными менеджера, Accounting — лист для работы с данными бухгалтера, Data Base — лист базы данных, Pivot — лист для статистической обработки данных. Предположим, что в соответствии с существующей в организации политикой конфиденциальности менеджер должен иметь доступ только к листам Logistics и Start, бухгалтер — к листам Start, Accounting и Data Base, руководство организации и администратор -ко всем листам книги.
Каждой из категорий пользователей дается свой логин и пароль, для ввода которых, при открытии книги, можно использовать форму авторизации.
Создание формы производится при помощи встроенного в Excel редактора Microsoft Visual Basic (в дальнейшем — редактор VBA), доступ к которому в версиях Excel, начиная с 2007 года, осуществляется с вкладки «Разработчик». Процесс создания простейшей формы авторизации не сложен и может быть осуществлен обычным пользователем. В окне редактора VBA нужно выполнить следующие действия:
— выбрать команду меню Insert/UserForm — для открытия шаблона формы-
— в открывшемся вместе с шаблоном окне ToolBox, содержащем элементы управления формы, поочередно выбрать щелчком мыши следующие элементы:
¦ выпадающий список (ComboBox) — для выбора логина-
¦ текстовое поле (TextBox) — для ввода пароля-
¦ кнопку (CommandButton) — для запуска процесса авторизации-
— после выбора элемента щелчком мыши по шаблону формы поместить элемент на форму-
— для удобства работы подписать элементы с помощью элемента Label и саму форму, изменив ее свойство Caption в окне свойств.
В итоге получится следующее диалоговое окно (рис. 1):
Рисунок 1 — Форма авторизации Для того чтобы форма появлялась сразу при открытии документа, и его структура (перечень открытых и скрытых листов) зависела от уровня доступа пользователя, в редакторе VBA в процедуру открытия книги вписывается такой код (здесь и далее, после апострофа, в коде расположены комментарии):
Private Sub Workbook_Open () ActiveWorkbook. Unprotect (& quot-здесь пароль защиты структуры& quot-) '-1
Worksheets (& quot-Start"-). Select '-2 UserForm1. Show '-3 End Sub
Окно для записи кода появляется при двойном щелчке мыши по строке «ЭтаКнига» в окне Project (команда меню View/ProjectExplorer).
Этим кодом временно снимается защита структуры книги от изменений ('-1), выбирается первый лист для показа ('-2) и открывается форма авторизации ('-3). Временное снятие защиты структуры не позволяет осуществить доступ к скрытым листам, потому что никакие действия в книге, кроме работы с формой авторизации, до тех пор, пока не закроется форма, невозможны.
Для доступа к книге пользователь должен выбрать из списка Login свой логин, ввести свой пароль в текстовое поле Password и нажать кнопку Вход для завершения авторизации.
Для заполнения списка логинов при открытии формы нужно в процедуру ее активации добавить следующий код:
Private Sub UserForm_Activate ()
sStr = Array (& quot-manager"-, & quot-accountant"-, & quot-admin"-)
ComboBox1. List = sStr
End Sub
После нажатия кнопки Вход происходит идентификация данных, введенных в форму. Для передачи введенных данных и закрытия формы авторизации в процедуру нажатия кнопки нужно добавить следующий код:
Private Sub CommandButton1_Click () login = ComboBox1. Text pass = TextBox1. Text
Me. Hide End Sub
В случае правильного ввода происходит открытие тех листов, которые должны быть доступны данному пользователю. Открытие в соответствии с уровнем доступа обеспечивается вставкой в процедуру активации книги следующего кода (приведен фрагмент кода для авторизации менеджера): Private Sub Workbook_Activate () If login = & quot-manager"- And pass = & quot-здесь пароль менеджера& quot- Then '-1
Worksheets (& quot-Master Data& quot-). Visible = False Worksheets (& quot-Accounting"-). Visible = False Worksheets (& quot-Data Base& quot-). Visible = False Worksheets (& quot-Logistics"-). Visible = True Worksheets (& quot-Pivot"-). Visible = False Worksheets (& quot- Start& quot-). Select ActiveWorkbook. Protect Password: ="-здесь пароль защиты структуры& quot-, Structure: =True, Win-dows: =False '-2 End If … '-3 End Sub
В коде задано условие совпадения значений логина и пароля ('-1), скрытые листы (Visible = False) и восстановление защиты структуры ('-2). На месте. ('-3) в коде расположены фрагменты, обеспечивающие авторизацию остальных пользователей. Они отличаются от приведенного фрагмента логином и паролем (вторая строка — в кавычках), а также свойством Visible у перечня листов. У открытых для доступа листов это свойство имеет значение «True», у остальных — «False».
В результате применения данного макроса пользователь, открывший книгу на своем уровне доступа, уже не сможет открыть скрытые от него листы.
В случае ввода неправильного пароля форма авторизации закрывается, и для пользователя остается доступным лишь стартовый лист, не содержащий никакой важной информации.
Кроме макросов, рассмотренных выше, для обеспечения полноценной защиты информации необходимо еще добавить код на процедуру закрытия книги по окончании работы.
Private Sub Workbook_BeforeClose (Cancel As Boolean)
ActiveWorkbook. Unprotect (& quot-здесь пароль защиты структуры& quot-)
Worksheets (& quot-Master Data& quot-). Visible = False Worksheets (& quot-Accounting"-). Visible = False Worksheets (& quot-Data Base& quot-). Visible = False Worksheets (& quot-Logistics"-). Visible = False Worksheets (& quot-Pivot"-). Visible = False
ActiveWorkbook. Protect Password: -'- здесь пароль защиты структуры& quot-, Structure: =True, Win-dows: =False
End Sub
Этот код временно снимает защиту структуры книги, скрывает все листы, кроме стартового (& quot-Start"-), и вновь устанавливает защиту на структуру книги. Это решение имеет двойную цель: во-первых, файл приходит в исходное состояние и готов к процессу авторизации при следующем открытии. Во-вторых, и это главное, файл становится устойчивым к отключению макросов. То есть, если попытаться открыть файл при отключенных макросах, то в открытой книге будет доступен только стартовый лист, не содержащий, как уже говорилось, никакой значимой информации. То же самое произойдет, если попытаться отключить макросы во время использования файла.
Кстати, весь программный код должен быть защищен от просмотра и изменения, что можно реализовать средствами самого редактора VBA через установку пароля (меню Tools/VBAProject Properties/Protection), и доступен только администратору.
В приведенном примере показана реализация авторизации и разграничения доступа в самом простом варианте. Все пароли и логины прописаны в программном коде, что не совсем удобно для их периодической смены. Для обеспечения удобного обновления паролей можно ввести еще один лист -авторизации, где в табличной форме задать соответствие логинов и паролей. Там же можно прописать пароли на открытие файла и защиту структуры книги, а доступ к этому листу разрешить только пользователям с правами администратора. При этом изменения в приведенных выше программных кодах будут минимальны: добавится строка состояния видимости нового листа и, вместо конкретных данных логинов и паролей, будут ссылки на соответствующие ячейки этого листа.
Таким образом, подводя итог, можно утверждать, что приведенный способ разграничения прав доступа к информации значительно расширяет рамки использования электронных таблиц Excel в современном делопроизводстве, а простота решения делает возможным его применение без привлечения профессиональных программистов — силами самих пользователей, которым достаточно освоить для этого азы программирования на VBA с помощью любого популярного издания на эту тему [16−20].
Конечно, предложенный метод не остановит профессионального хакера — он и не такие уровни защиты взламывает (в том числе и стандартные средства защиты Excel). Поэтому для сохранения секретной информации необходимы уже более серьезные методы защиты (криптографические и т. п.). Но на уровне пользователя, в том числе, и достаточ-
но продвинутого, описанная система защиты вполне обеспечит нужный уровень безопасности и разграничения доступа. Данный вариант уже проверялся на практике, получил положительные отзывы пользователей и продолжает использоваться в работе организации, где проходил проверку.
СПИСОК ЛИТЕРАТУРЫ
1. Уокенбах Дж. Microsoft Excel 2013. Библия пользователя. M.: ООО «И. Д. Вильямс», 2015. 928 с.
2. Уокенбах Дж. Microsoft Excel 2010. Библия пользователя: Пер. с англ. М.: Вильямс, 2011. 912 с.
3. Волков В. Б. Понятный самоучитель Excel 2010. СПб.: Питер, 2010. 256 с.
4. Уокенбах Дж. Microsoft Excel 2007. Библия пользователя: Пер. с англ. М.: Издательский дом «Вильямс», 2008. 816 с.
5. Уокенбах Дж. Microsoft Office Excel для чайников. Краткий справочник: Пер. с англ. М.: Издательский дом «Вильямс», 2007. 384 с.
6. Уокенбах, Дж. Excel 2013. Трюки и советы Джона Уокенбаха. СПб.: Питер, 2014. 336 с.
7. Серогодский В. В. Excel 2013. Полное руководство. Готовые ответы и полезные приемы профессиональной работы. СПб.: Наука и Техника, 2015. 416 с.
8. Зудилова Т. В., Одиночкина С. В., Осетрова И. С., Осипов Н. А. Работа пользователя в Microsoft Excel 2010. СПб.: НИУ ИТМО, 2012. 87 с.
9. Уокенбах Дж. Формулы в Microsoft Excel 2010. М.: ООО «И.Д. Вильяма», 2011. 704 с.
10. Кулешова О. В. Microsoft Excel 2010. Расширенные возможности. Решение практических задач. М.: Центр Компьютерного Обучения «Специалист», 2012. 91 с.
11. Веденеева Е. А. Функции и формулы Excel 2007. Библиотека пользователя. СПб.: Питер, 2008. 384 с.
12. Пащенко И. Г. Excel 2007. М.: Эксмо, 2009. 496 с.
13. Сеппа Д. Программирование на Microsoft ADO. NET 2.0. Мастер-класс: Пер. с англ. М.: ИТД «Русская Редакция», 2007. 640 с.
14. Сахил М. Microsoft ADO. NET 2.0 для профессионалов: Пер. с англ. М.: Издательский дом «Вильямс», 2006. 311 с.
15. Зиборов В. В. Visual Basic 2010 на примерах. СПб.: БХВ-Петербург, 2010. 336 с.
16. Уокенбах Дж. Excel 2013. Профессиональное программирование на VBA: Пер. с англ. M.: ООО «И.Д. Вильямс», 2014. 960 с.
17. Уокенбах Дж. Excel 2010. Профессиональное программирование на VBA: Пер. с англ. М.: «Диалектика», 2012. 944 с.
18. Слепцова Л. Д. Программирование на VBA в Microsoft Office 2010. Самоучитель. М.: ООО «ИД Вильямс», 2007. 432 с.
19. Гарбер Г. З. Основы программирования на VB и VBA в Excel 2007. М.: Солон-Пресс, 2008. 192 с.
20. Кашаев С. М. Программирование в Microsoft Excel на примерах. СПб.: БХВ-Петербург, 2007. 320 с.
УДК 621. 311:620. 09
МЕТОДИЧЕСКИЕ ВОПРОСЫ ОБЪЕКТИВНОЙ ОЦЕНКИ ПОТЕНЦИАЛА ЭНЕРГОСБЕРЕЖЕНИЯ
© 2016
Осокин Владимир Леонидович, кандидат технических наук, доцент кафедры «Электрификация и автоматизация» Папков Борис Васильевич, доктор технических наук, профессор кафедры «Электрификация и автоматизация» Горохов Валентин Александрович, кандидат филосовских наук, профессор Нижегородский государственный инженерно-экономический университет
Аннотация. Статья посвящена вопросам оценки потенциала энергосбережения и повышения эффективности использования энергетических ресурсов. Целью исследования является выработка рекомендаций для рационального выбора стратегий, обеспечивающих успешность энергосберегающих мероприятий. Результат их внедрения — экономия энергоресурсов.
Системный подход к оценке комплексного потенциала энергосбережения анализируемого объекта требует учёта эффекта взаимодействия внедряемого энергосберегающего мероприятия с возможным изменением электропотребления других производств, связанных единым технологическим процессом. Количественная оценка потенциала энергосбережения напрямую связана с результатами детального энергетического обследования рассматриваемого объекта производства, цель которого — выбор перспективных направлений разработки энергосберегающих мероприятий. Как резерв экономии энергии потенциал энергосбережения определяется разностью достигнутого и теоретического энергопотребления (затрат) на производство конечной товарной продукции или проведение работ на базовом и перспективном временных уровнях.

ПоказатьСвернуть
Заполнить форму текущей работой