<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.cusu.edu.ua/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
		<id>https://wiki.cusu.edu.ua/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tkanoff</id>
		<title>Вікі ЦДУ - Внесок користувача [uk]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.cusu.edu.ua/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tkanoff"/>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%92%D0%BD%D0%B5%D1%81%D0%BE%D0%BA/Tkanoff"/>
		<updated>2026-04-08T16:36:37Z</updated>
		<subtitle>Внесок користувача</subtitle>
		<generator>MediaWiki 1.23.2</generator>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9A%D0%BE%D1%80%D0%B8%D1%81%D1%82%D1%83%D0%B2%D0%B0%D1%87:Tkanoff</id>
		<title>Користувач:Tkanoff</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9A%D0%BE%D1%80%D0%B8%D1%81%D1%82%D1%83%D0%B2%D0%B0%D1%87:Tkanoff"/>
				<updated>2010-12-22T00:21:48Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
ttp://reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
tp://reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
p://reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;://reisub.blogspot.com&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
//reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
/reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
eisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
isub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
sub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
ub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
b.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
logspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
ogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
gspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
spot.com&amp;lt;br&amp;gt;&lt;br /&gt;
pot.com&amp;lt;br&amp;gt;&lt;br /&gt;
ot.com&amp;lt;br&amp;gt;&lt;br /&gt;
t.com&amp;lt;br&amp;gt;&lt;br /&gt;
.com&amp;lt;br&amp;gt;&lt;br /&gt;
com&amp;lt;br&amp;gt;&lt;br /&gt;
om&amp;lt;br&amp;gt;&lt;br /&gt;
m&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista</id>
		<title>Настройка Wi-Fi маршрутизатора в Windows Vista</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista"/>
				<updated>2010-12-22T00:21:06Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Налаштування '''Wi-Fi''' маршрутизатора в '''Windows Vista'''&lt;br /&gt;
&lt;br /&gt;
Wi-Fi маршрутизатор або точка доступу (ТД) можна використовувати для підключення до Інтернету з вашого ноутбука або комп'ютера в Інтернет або вашої корпоративної мережу, відповідно.&lt;br /&gt;
''Примітка''. Переконайтеся, що ви маєте активне з'єднання з'єднання з Wi-Fi маршрутизатором або ТД перш, ніж перейти до рішення далі. Використовуйте кабель, що наданий виробником апаратного забезпечення. Один кінець кабелю повинен бути підключений до комп'ютера, ethernet порта, а інший до маршрутизатора або ТД, в ethernet порт.Налаштування Wi-Fi роутера '''D-Link'''.&lt;br /&gt;
&lt;br /&gt;
1. Підключіть всі необхідні кабелі.&amp;lt;br&amp;gt;&lt;br /&gt;
2. Ввімкніть роутер&amp;lt;br&amp;gt;&lt;br /&gt;
3. Ввімкніть комп'ютер, з якого ви будете налаштовувати роутер (''він повинен бути підключений або до одного з портів 1-4, або підключений до роутера через Wi-Fi'')&amp;lt;br&amp;gt;&lt;br /&gt;
4. На комп'ютері зайдіть у налаштування '''протоколу TCP / IP''' підключення по локальній мережі&amp;lt;br&amp;gt;&lt;br /&gt;
5. В вікні '''«Протокол Интернета (TCP / IP)»''' виберіть «отримати налаштування автоматично»&amp;lt;br&amp;gt;&lt;br /&gt;
6. Натисніть кнопку '''«ОК»''' і «закрити» в наступному вікні&amp;lt;br&amp;gt;&lt;br /&gt;
7. Зайдіть в '''меню Пуск''', і натисніть кнопку '''«Виконати»''' ('''«Run»''') (Якщо у вас ''Windows Vista'' наберіть комбінацію клавіш '''«Windows» + «R»''')&amp;lt;br&amp;gt;&lt;br /&gt;
8. В вікні, англійськими літерами наберіть '''«cmd»''' і натисніть кнопку '''«OK»'''&amp;lt;br&amp;gt;&lt;br /&gt;
9. В вікні, англійськими літерами наберіть '''«ipconfig»''' і натисніть кнопку '''«Enter»'''&amp;lt;br&amp;gt;&lt;br /&gt;
10. Запам'ятайте цифри, які написані у рядку '''&amp;quot;Основной шлюз&amp;quot;''' ('''Default Gateway''' у разі англійської версії ОС Windows), і введіть їх в адресний рядок браузера (те, чим ви зазвичай заходите в інтернет)&amp;lt;br&amp;gt;&lt;br /&gt;
11. У вікні, що з'явилося введіть пароль доступу на ваш роутер (за замовчуванням «Admin» пароль-&amp;quot;&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
12. У вікні, що з'явилося виберіть пункт меню '''«WAN»'''.&amp;lt;br&amp;gt;&lt;br /&gt;
13. У розділі '''«WAN Settings»''' вікна, що з'явилося виберіть '''«Static IP»''', після чого заповніть наступні поля згідно картки абонента&amp;lt;br&amp;gt;&lt;br /&gt;
    «IP Address» - IP адресa&amp;lt;br&amp;gt;&lt;br /&gt;
    «Subnet Mask» - Маска пiдмережi&amp;lt;br&amp;gt;&lt;br /&gt;
    «ISP Gateway Address» - Шлюз&amp;lt;br&amp;gt;&lt;br /&gt;
    «Primary DNS Address» - Основний Сервер Доменних Iмен&amp;lt;br&amp;gt;&lt;br /&gt;
Поля '''«MAC Address»''' і '''«MTU»''' заповнювати не потрібно&amp;lt;br&amp;gt;&lt;br /&gt;
14. Налаштування бездротової мережі: виберіть пункт «Wireless».&amp;lt;br&amp;gt;&lt;br /&gt;
Заповніть наступні поля:&amp;lt;br&amp;gt;&lt;br /&gt;
    Wireless Radio - On (Включення бездротової мережі)&amp;lt;br&amp;gt;&lt;br /&gt;
    SSID - Ім'я Вашої Мережі&amp;lt;br&amp;gt;&lt;br /&gt;
наступні пункти, це тип шифрування вашої мережі, потрібно вибирати ті, які підтримує '''Ваш''' Wi-Fi адаптер)&amp;lt;br&amp;gt;&lt;br /&gt;
    Security - WPA2 (тип шифрування, потрібно вибирати той, який підтримує Ваш Wi-Fi адаптер)&amp;lt;br&amp;gt;&lt;br /&gt;
    Cipher Type - TKIP&amp;lt;br&amp;gt;&lt;br /&gt;
    PSK / EAP - PSK&amp;lt;br&amp;gt;&lt;br /&gt;
15. Налаштування '''DHCP''' (динамічна видача адрес). Пперейдіть до розділу DHCP.&amp;lt;br&amp;gt;&lt;br /&gt;
Параметр DHCP Server повинен стояти '''Enabled'''&amp;lt;br&amp;gt;&lt;br /&gt;
16. Після заповнення зазначених полів натисніть кнопку '''«Apply»''' внизу сторінки.&amp;lt;br&amp;gt;&lt;br /&gt;
17. Після збереження налаштувань і перезавантаження роутера перевіряємо інтернет ''':)'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista</id>
		<title>Настройка Wi-Fi маршрутизатора в Windows Vista</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista"/>
				<updated>2010-12-22T00:19:27Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Налаштування '''Wi-Fi''' маршрутизатора в '''Windows Vista'''&lt;br /&gt;
&lt;br /&gt;
Wi-Fi маршрутизатор або точка доступу (ТД) можна використовувати для підключення до Інтернету з вашого ноутбука або комп'ютера в Інтернет або вашої корпоративної мережу, відповідно.&lt;br /&gt;
''Примітка''. Переконайтеся, що ви маєте активне з'єднання з'єднання з Wi-Fi маршрутизатором або ТД перш, ніж перейти до рішення далі. Використовуйте кабель, що наданий виробником апаратного забезпечення. Один кінець кабелю повинен бути підключений до комп'ютера, ethernet порта, а інший до маршрутизатора або ТД, в ethernet порт.Налаштування Wi-Fi роутера '''D-Link'''.&lt;br /&gt;
&lt;br /&gt;
1. Підключіть всі необхідні кабелі.&amp;lt;br&amp;gt;&lt;br /&gt;
2. Ввімкніть роутер&amp;lt;br&amp;gt;&lt;br /&gt;
3. Ввімкніть комп'ютер, з якого ви будете налаштовувати роутер (''він повинен бути підключений або до одного з портів 1-4, або підключений до роутера через Wi-Fi'')&amp;lt;br&amp;gt;&lt;br /&gt;
4. На комп'ютері зайдіть у налаштування '''протоколу TCP / IP''' підключення по локальній мережі&amp;lt;br&amp;gt;&lt;br /&gt;
5. В вікні '''«Протокол Интернета (TCP / IP)»''' виберіть «отримати налаштування автоматично»&amp;lt;br&amp;gt;&lt;br /&gt;
6. Натисніть кнопку '''«ОК»''' і «закрити» в наступному вікні&amp;lt;br&amp;gt;&lt;br /&gt;
7. Зайдіть в '''меню Пуск''', і натисніть кнопку '''«Виконати»''' ('''«Run»''') (Якщо у вас ''Windows Vista'' наберіть комбінацію клавіш '''«Windows» + «R»''')&amp;lt;br&amp;gt;&lt;br /&gt;
8. В вікні, англійськими літерами наберіть '''«cmd»''' і натисніть кнопку '''«OK»'''&amp;lt;br&amp;gt;&lt;br /&gt;
9. В вікні, англійськими літерами наберіть '''«ipconfig»''' і натисніть кнопку '''«Enter»'''&amp;lt;br&amp;gt;&lt;br /&gt;
10. Запам'ятайте цифри, які написані у рядку '''&amp;quot;Основной шлюз&amp;quot;''' ('''Default Gateway''' у разі англійської версії ОС Windows), і введіть їх в адресний рядок браузера (те, чим ви зазвичай заходите в інтернет)&amp;lt;br&amp;gt;&lt;br /&gt;
11. У вікні, що з'явилося введіть пароль доступу на ваш роутер (за замовчуванням «Admin» пароль-&amp;quot;&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
12. У вікні, що з'явилося виберіть пункт меню '''«WAN»'''.&amp;lt;br&amp;gt;&lt;br /&gt;
13. У розділі '''«WAN Settings»''' вікна, що з'явилося виберіть '''«Static IP»''', після чого заповніть наступні поля згідно картки абонента&amp;lt;br&amp;gt;&lt;br /&gt;
    «IP Address» - IP адресa&amp;lt;br&amp;gt;&lt;br /&gt;
    «Subnet Mask» - Маска пiдмережi&amp;lt;br&amp;gt;&lt;br /&gt;
    «ISP Gateway Address» - Шлюз&amp;lt;br&amp;gt;&lt;br /&gt;
    «Primary DNS Address» - Основний Сервер Доменних Iменем&amp;lt;br&amp;gt;&lt;br /&gt;
Поля '''«MAC Address»''' і '''«MTU»''' заповнювати не потрібно&amp;lt;br&amp;gt;&lt;br /&gt;
14. Налаштування бездротової мережі: виберіть пункт «Wireless».&amp;lt;br&amp;gt;&lt;br /&gt;
Заповніть наступні поля:&amp;lt;br&amp;gt;&lt;br /&gt;
Wireless Radio - On (Включення бездротової мережі)&amp;lt;br&amp;gt;&lt;br /&gt;
SSID - Ім'я Вашої Мережі&amp;lt;br&amp;gt;&lt;br /&gt;
наступні пункти, це тип шифрування вашої мережі, потрібно вибирати ті, які підтримує Ваш Wi-Fi адаптер)&amp;lt;br&amp;gt;&lt;br /&gt;
Security - WPA2 (тип шифрування, потрібно вибирати той, який підтримує Ваш Wi-Fi адаптер)&amp;lt;br&amp;gt;&lt;br /&gt;
Cipher Type - TKIP&amp;lt;br&amp;gt;&lt;br /&gt;
PSK / EAP - PSK&amp;lt;br&amp;gt;&lt;br /&gt;
15. Налаштування DHCP (динамічна видача адрес). Пперейдіть до розділу DHCP.&amp;lt;br&amp;gt;&lt;br /&gt;
Параметр DHCP Server повинен стояти Enabled&amp;lt;br&amp;gt;&lt;br /&gt;
16. Після заповнення зазначених полів натисніть кнопку «Apply» внизу сторінки.&amp;lt;br&amp;gt;&lt;br /&gt;
17. Після збереження налаштувань і перезавантаження роутера перевіряємо інтернет :-)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista</id>
		<title>Настройка Wi-Fi маршрутизатора в Windows Vista</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista"/>
				<updated>2010-12-22T00:17:59Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Налаштування '''Wi-Fi''' маршрутизатора в '''Windows Vista'''&lt;br /&gt;
&lt;br /&gt;
Wi-Fi маршрутизатор або точка доступу (ТД) можна використовувати для підключення до Інтернету з вашого ноутбука або комп'ютера в Інтернет або вашої корпоративної мережу, відповідно.&lt;br /&gt;
''Примітка''. Переконайтеся, що ви маєте активне з'єднання з'єднання з Wi-Fi маршрутизатором або ТД перш, ніж перейти до рішення далі. Використовуйте кабель, що наданий виробником апаратного забезпечення. Один кінець кабелю повинен бути підключений до комп'ютера, ethernet порта, а інший до маршрутизатора або ТД, в ethernet порт.Налаштування Wi-Fi роутера '''D-Link'''.&lt;br /&gt;
&lt;br /&gt;
1. Підключіть всі необхідні кабелі.&amp;lt;br&amp;gt;&lt;br /&gt;
2. Ввімкніть роутер&amp;lt;br&amp;gt;&lt;br /&gt;
3. Ввімкніть комп'ютер, з якого ви будете налаштовувати роутер (''він повинен бути підключений або до одного з портів 1-4, або підключений до роутера через Wi-Fi'')&amp;lt;br&amp;gt;&lt;br /&gt;
4. На комп'ютері зайдіть у налаштування '''протоколу TCP / IP''' підключення по локальній мережі&amp;lt;br&amp;gt;&lt;br /&gt;
5. В вікні '''«Протокол Интернета (TCP / IP)»''' виберіть «отримати налаштування автоматично»&amp;lt;br&amp;gt;&lt;br /&gt;
6. Натисніть кнопку '''«ОК»''' і «закрити» в наступному вікні&amp;lt;br&amp;gt;&lt;br /&gt;
7. Зайдіть в '''меню Пуск''', і натисніть кнопку '''«Виконати»''' ('''«Run»''') (Якщо у вас ''Windows Vista'' наберіть комбінацію клавіш '''«Windows» + «R»''')&amp;lt;br&amp;gt;&lt;br /&gt;
8. В вікні, англійськими літерами наберіть '''«cmd»''' і натисніть кнопку '''«OK»'''&amp;lt;br&amp;gt;&lt;br /&gt;
9. В вікні, англійськими літерами наберіть '''«ipconfig»''' і натисніть кнопку '''«Enter»'''&amp;lt;br&amp;gt;&lt;br /&gt;
10. Запам'ятайте цифри, які написані у рядку &amp;quot;Основной шлюз» (Default Gateway у разі англійської версії ОС Windows), і введіть їх в адресний рядок браузера (те, чим ви зазвичай заходите в інтернет)&amp;lt;br&amp;gt;&lt;br /&gt;
11. У вікні, що з'явилося введіть пароль доступу на ваш роутер (за замовчуванням «Admin» пароль-&amp;quot;&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
12. У вікні, що з'явилося виберіть пункт меню «WAN».&amp;lt;br&amp;gt;&lt;br /&gt;
13. У розділі «WAN Settings» вікна, що з'явилося виберіть «Static IP», після чого заповніть наступні поля згідно картки абонента&amp;lt;br&amp;gt;&lt;br /&gt;
«IP Address» - IP адреси&amp;lt;br&amp;gt;&lt;br /&gt;
«Subnet Mask» - Маска пiдмережi&amp;lt;br&amp;gt;&lt;br /&gt;
«ISP Gateway Address» - Шлюз&amp;lt;br&amp;gt;&lt;br /&gt;
«Primary DNS Address» - Основний Сервер Доменних Iменем&amp;lt;br&amp;gt;&lt;br /&gt;
Поля «MAC Address» і «MTU» заповнювати не потрібно&amp;lt;br&amp;gt;&lt;br /&gt;
14. Налаштування бездротової мережі: виберіть пункт «Wireless».&amp;lt;br&amp;gt;&lt;br /&gt;
Заповніть наступні поля:&amp;lt;br&amp;gt;&lt;br /&gt;
Wireless Radio - On (Включення бездротової мережі)&amp;lt;br&amp;gt;&lt;br /&gt;
SSID - Ім'я Вашої Мережі&amp;lt;br&amp;gt;&lt;br /&gt;
наступні пункти, це тип шифрування вашої мережі, потрібно вибирати ті, які підтримує Ваш Wi-Fi адаптер)&amp;lt;br&amp;gt;&lt;br /&gt;
Security - WPA2 (тип шифрування, потрібно вибирати той, який підтримує Ваш Wi-Fi адаптер)&amp;lt;br&amp;gt;&lt;br /&gt;
Cipher Type - TKIP&amp;lt;br&amp;gt;&lt;br /&gt;
PSK / EAP - PSK&amp;lt;br&amp;gt;&lt;br /&gt;
15. Налаштування DHCP (динамічна видача адрес). Пперейдіть до розділу DHCP.&amp;lt;br&amp;gt;&lt;br /&gt;
Параметр DHCP Server повинен стояти Enabled&amp;lt;br&amp;gt;&lt;br /&gt;
16. Після заповнення зазначених полів натисніть кнопку «Apply» внизу сторінки.&amp;lt;br&amp;gt;&lt;br /&gt;
17. Після збереження налаштувань і перезавантаження роутера перевіряємо інтернет :-)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista</id>
		<title>Настройка Wi-Fi маршрутизатора в Windows Vista</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista"/>
				<updated>2010-12-22T00:16:23Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Налаштування '''Wi-Fi''' маршрутизатора в '''Windows Vista'''&lt;br /&gt;
&lt;br /&gt;
Wi-Fi маршрутизатор або точка доступу (ТД) можна використовувати для підключення до Інтернету з вашого ноутбука або комп'ютера в Інтернет або вашої корпоративної мережу, відповідно.&lt;br /&gt;
''Примітка''. Переконайтеся, що ви маєте активне з'єднання з'єднання з Wi-Fi маршрутизатором або ТД перш, ніж перейти до рішення далі. Використовуйте кабель, що наданий виробником апаратного забезпечення. Один кінець кабелю повинен бути підключений до комп'ютера, ethernet порта, а інший до маршрутизатора або ТД, в ethernet порт.Налаштування Wi-Fi роутера '''D-Link'''.&lt;br /&gt;
&lt;br /&gt;
1. Підключіть всі необхідні кабелі.&amp;lt;br&amp;gt;&lt;br /&gt;
2. Ввімкніть роутер&amp;lt;br&amp;gt;&lt;br /&gt;
3. Ввімкніть комп'ютер, з якого ви будете налаштовувати роутер (він повинен бути підключений або до одного з портів 1-4, або підключений до роутера через Wi-Fi)&amp;lt;br&amp;gt;&lt;br /&gt;
4. На комп'ютері зайдіть у налаштування протоколу TCP / IP підключення по локальній мережі&amp;lt;br&amp;gt;&lt;br /&gt;
5. В вікні «Протокол Интернета (TCP / IP)» виберіть «отримати налаштування автоматично»&amp;lt;br&amp;gt;&lt;br /&gt;
6. Натисніть кнопку «ОК» і «закрити» в наступному вікні&amp;lt;br&amp;gt;&lt;br /&gt;
7. Зайдіть в меню Пуск, і натисніть кнопку «Виконати» («Run») (Якщо у вас Windows Vista наберіть комбінацію клавіш «Windows» + «R»)&amp;lt;br&amp;gt;&lt;br /&gt;
8. В вікні, англійськими літерами наберіть «cmd» і натисніть кнопку «OK»&amp;lt;br&amp;gt;&lt;br /&gt;
9. В вікні, англійськими літерами наберіть «ipconfig» і натисніть кнопку «Enter»&amp;lt;br&amp;gt;&lt;br /&gt;
10. Запам'ятайте цифри, які написані у рядку &amp;quot;Основной шлюз» (Default Gateway у разі англійської версії ОС Windows), і введіть їх в адресний рядок браузера (те, чим ви зазвичай заходите в інтернет)&amp;lt;br&amp;gt;&lt;br /&gt;
11. У вікні, що з'явилося введіть пароль доступу на ваш роутер (за замовчуванням «Admin» пароль-&amp;quot;&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
12. У вікні, що з'явилося виберіть пункт меню «WAN».&amp;lt;br&amp;gt;&lt;br /&gt;
13. У розділі «WAN Settings» вікна, що з'явилося виберіть «Static IP», після чого заповніть наступні поля згідно картки абонента&amp;lt;br&amp;gt;&lt;br /&gt;
«IP Address» - IP адреси&amp;lt;br&amp;gt;&lt;br /&gt;
«Subnet Mask» - Маска пiдмережi&amp;lt;br&amp;gt;&lt;br /&gt;
«ISP Gateway Address» - Шлюз&amp;lt;br&amp;gt;&lt;br /&gt;
«Primary DNS Address» - Основний Сервер Доменних Iменем&amp;lt;br&amp;gt;&lt;br /&gt;
Поля «MAC Address» і «MTU» заповнювати не потрібно&amp;lt;br&amp;gt;&lt;br /&gt;
14. Налаштування бездротової мережі: виберіть пункт «Wireless».&amp;lt;br&amp;gt;&lt;br /&gt;
Заповніть наступні поля:&amp;lt;br&amp;gt;&lt;br /&gt;
Wireless Radio - On (Включення бездротової мережі)&amp;lt;br&amp;gt;&lt;br /&gt;
SSID - Ім'я Вашої Мережі&amp;lt;br&amp;gt;&lt;br /&gt;
наступні пункти, це тип шифрування вашої мережі, потрібно вибирати ті, які підтримує Ваш Wi-Fi адаптер)&amp;lt;br&amp;gt;&lt;br /&gt;
Security - WPA2 (тип шифрування, потрібно вибирати той, який підтримує Ваш Wi-Fi адаптер)&amp;lt;br&amp;gt;&lt;br /&gt;
Cipher Type - TKIP&amp;lt;br&amp;gt;&lt;br /&gt;
PSK / EAP - PSK&amp;lt;br&amp;gt;&lt;br /&gt;
15. Налаштування DHCP (динамічна видача адрес). Пперейдіть до розділу DHCP.&amp;lt;br&amp;gt;&lt;br /&gt;
Параметр DHCP Server повинен стояти Enabled&amp;lt;br&amp;gt;&lt;br /&gt;
16. Після заповнення зазначених полів натисніть кнопку «Apply» внизу сторінки.&amp;lt;br&amp;gt;&lt;br /&gt;
17. Після збереження налаштувань і перезавантаження роутера перевіряємо інтернет :-)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista</id>
		<title>Настройка Wi-Fi маршрутизатора в Windows Vista</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista"/>
				<updated>2010-12-20T23:36:04Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Налаштування Wi-Fi маршрутизатора в Windows Vista&lt;br /&gt;
&lt;br /&gt;
Wi-Fi маршрутизатор або точка доступу (ТД) можна використовувати для підключення до Інтернету з вашого ноутбука або комп'ютера в Інтернет або вашої корпоративної мережу, відповідно.&lt;br /&gt;
''Примітка''. Переконайтеся, що ви маєте активне з'єднання з'єднання з Wi-Fi маршрутизатором або ТД перш, ніж перейти до рішення далі. Використовуйте кабель, що наданий виробником апаратного забезпечення. Один кінець кабелю повинен бути підключений до комп'ютера, ethernet порта, а інший до маршрутизатора або ТД, в ethernet порт.Налаштування Wi-Fi роутера D-Link.&lt;br /&gt;
&lt;br /&gt;
1. Підключіть всі необхідні кабелі.&amp;lt;br&amp;gt;&lt;br /&gt;
2. Ввімкніть роутер&amp;lt;br&amp;gt;&lt;br /&gt;
3. Ввімкніть комп'ютер, з якого ви будете налаштовувати роутер (він повинен бути підключений або до одного з портів 1-4, або підключений до роутера через Wi-Fi)&amp;lt;br&amp;gt;&lt;br /&gt;
4. На комп'ютері зайдіть у налаштування протоколу TCP / IP підключення по локальній мережі&amp;lt;br&amp;gt;&lt;br /&gt;
5. В вікні «Протокол Интернета (TCP / IP)» виберіть «отримати налаштування автоматично»&amp;lt;br&amp;gt;&lt;br /&gt;
6. Натисніть кнопку «ОК» і «закрити» в наступному вікні&amp;lt;br&amp;gt;&lt;br /&gt;
7. Зайдіть в меню Пуск, і натисніть кнопку «Виконати» («Run») (Якщо у вас Windows Vista наберіть комбінацію клавіш «Windows» + «R»)&amp;lt;br&amp;gt;&lt;br /&gt;
8. В вікні, англійськими літерами наберіть «cmd» і натисніть кнопку «OK»&amp;lt;br&amp;gt;&lt;br /&gt;
9. В вікні, англійськими літерами наберіть «ipconfig» і натисніть кнопку «Enter»&amp;lt;br&amp;gt;&lt;br /&gt;
10. Запам'ятайте цифри, які написані у рядку &amp;quot;Основной шлюз» (Default Gateway у разі англійської версії ОС Windows), і введіть їх в адресний рядок браузера (те, чим ви зазвичай заходите в інтернет)&amp;lt;br&amp;gt;&lt;br /&gt;
11. У вікні, що з'явилося введіть пароль доступу на ваш роутер (за замовчуванням «Admin» пароль-&amp;quot;&amp;quot;)&amp;lt;br&amp;gt;&lt;br /&gt;
12. У вікні, що з'явилося виберіть пункт меню «WAN».&amp;lt;br&amp;gt;&lt;br /&gt;
13. У розділі «WAN Settings» вікна, що з'явилося виберіть «Static IP», після чого заповніть наступні поля згідно картки абонента&amp;lt;br&amp;gt;&lt;br /&gt;
«IP Address» - IP адреси&amp;lt;br&amp;gt;&lt;br /&gt;
«Subnet Mask» - Маска пiдмережi&amp;lt;br&amp;gt;&lt;br /&gt;
«ISP Gateway Address» - Шлюз&amp;lt;br&amp;gt;&lt;br /&gt;
«Primary DNS Address» - Основний Сервер Доменних Iменем&amp;lt;br&amp;gt;&lt;br /&gt;
Поля «MAC Address» і «MTU» заповнювати не потрібно&amp;lt;br&amp;gt;&lt;br /&gt;
14. Налаштування бездротової мережі: виберіть пункт «Wireless».&amp;lt;br&amp;gt;&lt;br /&gt;
Заповніть наступні поля:&amp;lt;br&amp;gt;&lt;br /&gt;
Wireless Radio - On (Включення бездротової мережі)&amp;lt;br&amp;gt;&lt;br /&gt;
SSID - Ім'я Вашої Мережі&amp;lt;br&amp;gt;&lt;br /&gt;
наступні пункти, це тип шифрування вашої мережі, потрібно вибирати ті, які підтримує Ваш Wi-Fi адаптер)&amp;lt;br&amp;gt;&lt;br /&gt;
Security - WPA2 (тип шифрування, потрібно вибирати той, який підтримує Ваш Wi-Fi адаптер)&amp;lt;br&amp;gt;&lt;br /&gt;
Cipher Type - TKIP&amp;lt;br&amp;gt;&lt;br /&gt;
PSK / EAP - PSK&amp;lt;br&amp;gt;&lt;br /&gt;
15. Налаштування DHCP (динамічна видача адрес). Пперейдіть до розділу DHCP.&amp;lt;br&amp;gt;&lt;br /&gt;
Параметр DHCP Server повинен стояти Enabled&amp;lt;br&amp;gt;&lt;br /&gt;
16. Після заповнення зазначених полів натисніть кнопку «Apply» внизу сторінки.&amp;lt;br&amp;gt;&lt;br /&gt;
17. Після збереження налаштувань і перезавантаження роутера перевіряємо інтернет :-)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista</id>
		<title>Настройка Wi-Fi маршрутизатора в Windows Vista</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista"/>
				<updated>2010-12-20T23:34:47Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Налаштування Wi-Fi маршрутизатора в Windows Vista&lt;br /&gt;
&lt;br /&gt;
Wi-Fi маршрутизатор або точка доступу (ТД) можна використовувати для підключення до Інтернету з вашого ноутбука або комп'ютера в Інтернет або вашої корпоративної мережу, відповідно.&lt;br /&gt;
''Примітка''. Переконайтеся, що ви маєте активне з'єднання з'єднання з Wi-Fi маршрутизатором або ТД перш, ніж перейти до відповідей далі. Використовуйте кабель, що наданий виробником апаратного забезпечення. Один кінець кабелю повинен бути підключений до комп'ютера, ethernet порта, а інший до маршрутизатора або ТД, в ethernet порт.Налаштування Wi-Fi роутера D-Link.&lt;br /&gt;
&lt;br /&gt;
1. Підключіть всі необхідні кабелі.&amp;lt;br&amp;gt;&lt;br /&gt;
2. Ввімкніть роутер&amp;lt;br&amp;gt;&lt;br /&gt;
3. Ввімкніть комп'ютер, з якого ви будете налаштовувати роутер (він повинен бути підключений або до одного з портів 1-4, або підключений до роутера через Wi-Fi)&amp;lt;br&amp;gt;&lt;br /&gt;
4. На комп'ютері зайдіть у налаштування протоколу TCP / IP підключення по локальній мережі&amp;lt;br&amp;gt;&lt;br /&gt;
5. В вікні «Протокол Интернета (TCP / IP)» виберіть «отримати налаштування автоматично»&lt;br /&gt;
6. Натисніть кнопку «ОК» і «закрити» в наступному вікні&lt;br /&gt;
7. Зайдіть в меню Пуск, і натисніть кнопку «Виконати» («Run») (Якщо у вас Windows Vista наберіть комбінацію клавіш «Windows» + «R»)&lt;br /&gt;
8. В вікні, англійськими літерами наберіть «cmd» і натисніть кнопку «OK»&lt;br /&gt;
9. В вікні, англійськими літерами наберіть «ipconfig» і натисніть кнопку «Enter»&lt;br /&gt;
10. Запам'ятайте цифри, які написані у рядку &amp;quot;Основной шлюз» (Default Gateway у разі англійської версії ОС Windows), і введіть їх в адресний рядок браузера (те, чим ви зазвичай заходите в інтернет)&lt;br /&gt;
11. У вікні, що з'явилося введіть пароль доступу на ваш роутер (за замовчуванням «Admin» пароль-&amp;quot;&amp;quot;)&lt;br /&gt;
12. У вікні, що з'явилося виберіть пункт меню «WAN».&lt;br /&gt;
13. У розділі «WAN Settings» вікна, що з'явилося виберіть «Static IP», після чого заповніть наступні поля згідно картки абонента&lt;br /&gt;
«IP Address» - IP адреси&lt;br /&gt;
«Subnet Mask» - Маска пiдмережi&lt;br /&gt;
«ISP Gateway Address» - Шлюз&lt;br /&gt;
«Primary DNS Address» - Основний Сервер Доменних Iменем&lt;br /&gt;
Поля «MAC Address» і «MTU» заповнювати не потрібно&lt;br /&gt;
14. Налаштування бездротової мережі: виберіть пункт «Wireless».&lt;br /&gt;
Заповніть наступні поля:&lt;br /&gt;
Wireless Radio - On (Включення бездротової мережі)&lt;br /&gt;
SSID - Ім'я Вашої Мережі&lt;br /&gt;
наступні пункти, це тип шифрування вашої мережі, потрібно вибирати ті, які підтримує Ваш Wi-Fi адаптер)&lt;br /&gt;
Security - WPA2 (тип шифрування, потрібно вибирати той, який підтримує Ваш Wi-Fi адаптер)&lt;br /&gt;
Cipher Type - TKIP&lt;br /&gt;
PSK / EAP - PSK&lt;br /&gt;
15. Налаштування DHCP (динамічна видача адрес). Пперейдіть до розділу DHCP.&lt;br /&gt;
Параметр DHCP Server повинен стояти Enabled&lt;br /&gt;
16. Після заповнення зазначених полів натисніть кнопку «Apply» внизу сторінки.&lt;br /&gt;
17. Після збереження налаштувань і перезавантаження роутера перевіряємо інтернет :-)&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista</id>
		<title>Настройка Wi-Fi маршрутизатора в Windows Vista</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista"/>
				<updated>2010-12-20T23:34:17Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Налаштування Wi-Fi маршрутизатора в Windows Vista&lt;br /&gt;
&lt;br /&gt;
Wi-Fi маршрутизатор або точка доступу (ТД) можна використовувати для підключення до Інтернету з вашого ноутбука або комп'ютера в Інтернет або вашої корпоративної мережу, відповідно.&lt;br /&gt;
''Примітка''. Переконайтеся, що ви маєте активне з'єднання з'єднання з Wi-Fi маршрутизатором або ТД перш, ніж перейти до відповідей далі. Використовуйте кабель, що наданий виробником апаратного забезпечення. Один кінець кабелю повинен бути підключений до комп'ютера, ethernet порта, а інший до маршрутизатора або ТД, в ethernet порт.Налаштування Wi-Fi роутера D-Link.&lt;br /&gt;
&lt;br /&gt;
1. Підключіть всі необхідні кабелі.&lt;br /&gt;
2. Ввімкніть роутер&lt;br /&gt;
3. Ввімкніть комп'ютер, з якого ви будете налаштовувати роутер (він повинен бути підключений або до одного з портів 1-4, або підключений до роутера через Wi-Fi)&lt;br /&gt;
4. На комп'ютері зайдіть у налаштування протоколу TCP / IP підключення по локальній мережі&lt;br /&gt;
5. В вікні «Протокол Интернета (TCP / IP)» виберіть «отримати налаштування автоматично»&lt;br /&gt;
6. Натисніть кнопку «ОК» і «закрити» в наступному вікні&lt;br /&gt;
7. Зайдіть в меню Пуск, і натисніть кнопку «Виконати» («Run») (Якщо у вас Windows Vista наберіть комбінацію клавіш «Windows» + «R»)&lt;br /&gt;
8. В вікні, англійськими літерами наберіть «cmd» і натисніть кнопку «OK»&lt;br /&gt;
9. В вікні, англійськими літерами наберіть «ipconfig» і натисніть кнопку «Enter»&lt;br /&gt;
10. Запам'ятайте цифри, які написані у рядку &amp;quot;Основной шлюз» (Default Gateway у разі англійської версії ОС Windows), і введіть їх в адресний рядок браузера (те, чим ви зазвичай заходите в інтернет)&lt;br /&gt;
11. У вікні, що з'явилося введіть пароль доступу на ваш роутер (за замовчуванням «Admin» пароль-&amp;quot;&amp;quot;)&lt;br /&gt;
12. У вікні, що з'явилося виберіть пункт меню «WAN».&lt;br /&gt;
13. У розділі «WAN Settings» вікна, що з'явилося виберіть «Static IP», після чого заповніть наступні поля згідно картки абонента&lt;br /&gt;
«IP Address» - IP адреси&lt;br /&gt;
«Subnet Mask» - Маска пiдмережi&lt;br /&gt;
«ISP Gateway Address» - Шлюз&lt;br /&gt;
«Primary DNS Address» - Основний Сервер Доменних Iменем&lt;br /&gt;
Поля «MAC Address» і «MTU» заповнювати не потрібно&lt;br /&gt;
14. Налаштування бездротової мережі: виберіть пункт «Wireless».&lt;br /&gt;
Заповніть наступні поля:&lt;br /&gt;
Wireless Radio - On (Включення бездротової мережі)&lt;br /&gt;
SSID - Ім'я Вашої Мережі&lt;br /&gt;
наступні пункти, це тип шифрування вашої мережі, потрібно вибирати ті, які підтримує Ваш Wi-Fi адаптер)&lt;br /&gt;
Security - WPA2 (тип шифрування, потрібно вибирати той, який підтримує Ваш Wi-Fi адаптер)&lt;br /&gt;
Cipher Type - TKIP&lt;br /&gt;
PSK / EAP - PSK&lt;br /&gt;
15. Налаштування DHCP (динамічна видача адрес). Пперейдіть до розділу DHCP.&lt;br /&gt;
Параметр DHCP Server повинен стояти Enabled&lt;br /&gt;
16. Після заповнення зазначених полів натисніть кнопку «Apply» внизу сторінки.&lt;br /&gt;
17. Після збереження налаштувань і перезавантаження роутера перевіряємо інтернет :-)&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista</id>
		<title>Настройка Wi-Fi маршрутизатора в Windows Vista</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista"/>
				<updated>2010-12-20T23:31:16Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Налаштування Wi-Fi маршрутизатора в Windows Vista&lt;br /&gt;
&lt;br /&gt;
Wi-Fi маршрутизатор або точка доступу (ТД) можна використовувати для підключення до Інтернету з вашого ноутбука або комп'ютера в Інтернет або вашої корпоративної мережу, відповідно.&lt;br /&gt;
''Примітка''. Переконайтеся, що ви маєте активне з'єднання з'єднання з Wi-Fi маршрутизатором або ТД перш, ніж перейти до відповідей далі. Використовуйте кабель, що наданий виробником апаратного забезпечення. Один кінець кабелю повинен бути підключений до комп'ютера, ethernet порта, а інший до маршрутизатора або ТД, в ethernet порт.Налаштування Wi-Fi роутера D-Link.&lt;br /&gt;
&lt;br /&gt;
1. Підключіть всі необхідні кабелі.&lt;br /&gt;
2. Ввімкніть роутер&lt;br /&gt;
3. Ввімкніть комп'ютер, з якого ви будете налаштовувати роутер (він повинен бути підключений або до одного з портів 1-4, або підключений до роутера через Wi-Fi)&lt;br /&gt;
4.На комп'ютері зайдіть у налаштування протоколу TCP / IP підключення по локальній мережі (http://www.domashka.net/directory/sett/ (посилання потім зміниться))&lt;br /&gt;
5.В вікні «Протокол Интернета (TCP / IP)» виберіть «отримати налаштування автоматично»&lt;br /&gt;
&lt;br /&gt;
01&lt;br /&gt;
&lt;br /&gt;
6.Нажміте кнопку «ОК» і «закрити» в наступному вікні&lt;br /&gt;
7.Зайдіте в меню Пуск, і натисніть кнопку «Виконати» («Run») (Якщо у вас Windows Vista наберіть комбінацію клавіш «Windows» + «R»)&lt;br /&gt;
8.В вікні, англійськими літерами наберіть «cmd» і натисніть кнопку «OK»&lt;br /&gt;
&lt;br /&gt;
02&lt;br /&gt;
&lt;br /&gt;
9.В вікні, англійськими літерами наберіть «ipconfig» і натисніть кнопку «Enter»&lt;br /&gt;
&lt;br /&gt;
03&lt;br /&gt;
10. Запам'ятайте цифри, які написані у рядку &amp;quot;Основной шлюз» (Default Gateway у разі англійської версії ОС Windows), і введіть їх в адресний рядок браузера (те, чим ви зазвичай заходите в інтернет) (в даному випадку це 192.168.9.1)&lt;br /&gt;
&lt;br /&gt;
04&lt;br /&gt;
&lt;br /&gt;
11. У вікні, що з'явилося введіть пароль доступу на ваш роутер (за замовчуванням «Admin» пароль-&amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
05&lt;br /&gt;
&lt;br /&gt;
12. У вікні, що з'явилося виберіть пункт меню «WAN».&lt;br /&gt;
&lt;br /&gt;
06&lt;br /&gt;
&lt;br /&gt;
13. У розділі «WAN Settings» вікна, що з'явилося виберіть «Static IP», після чого заповніть наступні поля згідно картки абонента&lt;br /&gt;
«IP Address» - IP адреси&lt;br /&gt;
«Subnet Mask» - Маска пiдмережi&lt;br /&gt;
«ISP Gateway Address» - Шлюз&lt;br /&gt;
«Primary DNS Address» - Основний Сервер Доменних Iменем&lt;br /&gt;
Поля «MAC Address» і «MTU» заповнювати не потрібно&lt;br /&gt;
&lt;br /&gt;
07&lt;br /&gt;
14. Налаштування бездротової мережі: виберете пункт «Wireless».&lt;br /&gt;
Заповніть наступні поля:&lt;br /&gt;
Wireless Radio - On (Включення бездротової мережі)&lt;br /&gt;
SSID - Ім'я Вашої Мережі&lt;br /&gt;
наступні пункти, це тип шифрування вашої мережі, потрібно вибирати ті, які поддержіивает Ваш Wi-Fi адаптер)&lt;br /&gt;
Security - WPA2 (тип шифрування, потрібно вибирати той, який поддержіивает Ваш Wi-Fi адаптер)&lt;br /&gt;
Cipher Type - TKIP&lt;br /&gt;
PSK / EAP - PSK&lt;br /&gt;
&lt;br /&gt;
08&lt;br /&gt;
&lt;br /&gt;
15. Налаштування DHCP (динамічна видача аддресов). перейдіть до розділу DHCP.&lt;br /&gt;
Параметр DHCP Server повинен стояти Enabled&lt;br /&gt;
09&lt;br /&gt;
16.После заповнення зазначених полів натисніть кнопку «Apply» ввнізу сторінки.&lt;br /&gt;
17. Після збереження налаштувань і перезавантаження роутера перевіряємо інтернет :-)&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista</id>
		<title>Настройка Wi-Fi маршрутизатора в Windows Vista</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Wi-Fi_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80%D0%B0_%D0%B2_Windows_Vista"/>
				<updated>2010-12-20T23:26:40Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: Створена сторінка: Налаштування Wi-Fi маршрутизатора або точка доступу в Windows Vista *  Wi-Fi маршрутизатор або точка...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Налаштування Wi-Fi маршрутизатора або точка доступу в Windows Vista *&lt;br /&gt;
&lt;br /&gt;
Wi-Fi маршрутизатор або точка доступу (ТД) можна використовувати для підключення до Інтернету з вашого ноутбука або комп'ютера в Інтернет або вашої корпоративної мережу, відповідно.&lt;br /&gt;
''Примітка''. Переконайтеся, що ви маєте активне з'єднання з'єднання з Wi-Fi маршрутизатором або ТД перш, ніж перейти до відповідей далі. Використовуйте кабель, що наданий виробником апаратного забезпечення. Один кінець кабелю повинен бути підключений до комп'ютера, ethernet порта, а інший до маршрутизатора або ТД, в ethernet порт.&lt;br /&gt;
&lt;br /&gt;
==Налаштування Wi-Fi маршрутизатора==&lt;br /&gt;
&lt;br /&gt;
    Доступ до мережу центру управління мережами і загальним доступом.&lt;br /&gt;
    Клацніть Установка бездротової маршрутизатор або точка доступу. Потім Натисніть Next (Далі).&lt;br /&gt;
&lt;br /&gt;
    Вибрати, чи будуть ви хочете включити мережу, яке використовується для мережу загальний доступ до файлів. Так, увімкніть мережа виявлення для всіх державних мережі відібраних для прикладу.&lt;br /&gt;
&lt;br /&gt;
    Дозволити Windows Vista * до її мережу апаратне забезпечення виявлення.&lt;br /&gt;
&lt;br /&gt;
    Операційна система не може для автоматичної настройки маршрутизатора або точка доступу.&lt;br /&gt;
    Виберіть конфігурування цей пристрій вручну і Windows Vista відкриває Web-браузера для встановлення з'єднання з пристрою. Ви повинні буде запропоновано ввести ім'я користувача і пароль для ім'я користувача та пароль (розрізнятися в залежності від постачальника). Конфігурувати його відповідно до встановлених пропозиції (наприклад мережу ім'я (SSID) і безпека тип). контакт маршрутизатора або точка доступу за більш конкретної інструкції, вони залежать від виробника.&lt;br /&gt;
    Примітка. Якщо ви пристрій USB порт для флеш-пам'ять, ви можете вибрати другу команду нижче.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Доступ до мережу центру управління мережами і загальним доступом&lt;br /&gt;
&lt;br /&gt;
    Start / керування панель »мережу та Інтернет» мережу центру управління мережами і загальним доступом&lt;br /&gt;
    Start / мережа »мережу центру управління мережами і загальним доступом&lt;br /&gt;
    Клацніть правою кнопкою миші мережа панель завдань (значок, два комп'ютер монітори) »мережу центру управління мережами і загальним доступом&lt;br /&gt;
&lt;br /&gt;
Операційна система:&lt;br /&gt;
Windows Vista * 64, Windows Vista * 32&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%90%D0%B4%D0%BC%D1%96%D0%BD%D1%96%D1%81%D1%82%D1%80%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_Wi-Fi_%D0%BC%D0%B5%D1%80%D0%B5%D0%B6</id>
		<title>Адміністрування Wi-Fi мереж</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%90%D0%B4%D0%BC%D1%96%D0%BD%D1%96%D1%81%D1%82%D1%80%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F_Wi-Fi_%D0%BC%D0%B5%D1%80%D0%B5%D0%B6"/>
				<updated>2010-12-20T23:22:53Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; Зміст курсу &lt;br /&gt;
&lt;br /&gt;
== Вступ ==&lt;br /&gt;
&lt;br /&gt;
[[Стандарт Wi-Fi]]&lt;br /&gt;
&lt;br /&gt;
[[Пристрої Wi-Fi]]&lt;br /&gt;
&lt;br /&gt;
[[Історія Wi-Fi]]&lt;br /&gt;
&lt;br /&gt;
[[Сучасний стан ринку Wi-Fi]]&lt;br /&gt;
&lt;br /&gt;
[[Складові  Wi-Fi мережі]]&lt;br /&gt;
&lt;br /&gt;
== Розгортання мереж ==&lt;br /&gt;
&lt;br /&gt;
[[Вибір та установка Wi-Fi антени]]&lt;br /&gt;
&lt;br /&gt;
[[Wi-Fi мережа на основі точки доступу. Налаштування точки доступу]]&lt;br /&gt;
&lt;br /&gt;
[[Wi-Fi мережа на основі роутеру. Налаштування роутеру]]&lt;br /&gt;
&lt;br /&gt;
[[Діапазони частот]]&lt;br /&gt;
&lt;br /&gt;
[[Зона Френеля]]&lt;br /&gt;
&lt;br /&gt;
[[Розповсюдження Wi-Fi в будівлі]]&lt;br /&gt;
&lt;br /&gt;
[[Проблеми Wi-Fi. Спотворення сигналу]]&lt;br /&gt;
&lt;br /&gt;
[[Шифрування Wi-Fi]]&lt;br /&gt;
&lt;br /&gt;
[[Новинка Wi-Fi]]&lt;br /&gt;
&lt;br /&gt;
[[Настройка Wi-Fi маршрутизатора в Windows Vista]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Викладач [[Болілий Василь Олександрович]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Навчальні проекти]]&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%A0I%D0%A5_Firewall</id>
		<title>РIХ Firewall</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%A0I%D0%A5_Firewall"/>
				<updated>2010-11-30T21:06:01Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Міжмережевий екран РIХ Firewall ==&lt;br /&gt;
&lt;br /&gt;
'''Міжмережевій екран''' ''Cisco Private Internet Exchange (PIX) Firewall'' дозволяє реалізовувати захист корпоративних мереж на недосяжному раніше рівні, маючи при цьому високу простоту в експлуатації. PIX Firewall може забезпечувати абсолютну безпеку внутрішньої мережі, повністю приховати її від зовнішнього світу. На відмінну від загальних proxy-серверів, які виконують обробку кожного мережевого пакету окремо від суттєвого заваниаження центрального процесора, PIX Firewall використовує спеціальну не UNIX-подібну операційну систему реального часу, забезпечуючу більш високу продуктивність.&lt;br /&gt;
&lt;br /&gt;
Основою високої продуктивності міжсіткового екрану PIX Firewall є схема захисту, базуючись на використанні алгоритму адаптивної безпеки (''adaptive security algorithm - ASA''), який ефективно приховує адреси користувачів від хакерів. Цей стійкий алгоритм забезпечує безпеку на рівні з'єднання на основі контролю інформації про адреси відправника і одержувача, послідовності нумерації пакетів TCP, номери портів і додаткові флаги TCP. Ця інформація зберігається в таблиці, перевірку на відповідність з записами якої проходят всі вхідні пакети. Доступ через PIX дозволено тільки в том випадку, якщо з'єднання успішно пройшло ідентифікацію. Цей метод забезпечує прозорий доступ для внутрішніх користувачів і авторизованих зовнішніх користувачів, повністю захищаючи внутрішню мережу від несанкціонованого доступу.&lt;br /&gt;
&lt;br /&gt;
Завдяки технології &amp;quot;наскрізного посередника&amp;quot; (''Cut-Through Proxy'') міжмережевий екран ''Cisco PIX Firewall'' також забезпечує сутєві переваги в використанні порівняно з екранами-&amp;quot;посередниками&amp;quot; на базі ОС UNIX. Як і прості proxy-сервера, PIX контролює установку з'єднання на рівні додатка. Після успішного проходження користувачем авторизації доступу відповідно з принятими правилами безпеки PIX забезпечує контроль потоку даних між абонентами на рівні сессії. Така технологія дозволяє міжмережевому екранові PIX працювати набагато швидше, ніж прості proxy-екрани.&lt;br /&gt;
&lt;br /&gt;
Завдяки підвищенню продуктивності, додаток спеціалізованої вмонтованої операційної системи реального часу також забезпечує піднімання рівня безпеки. На відміну від операційних систем сімейства UNIX, даний текст яких широко доступний, Cisco PIX - власна розробка компанії, створена спеціально для рішення задач забезпечення безпеки.&lt;br /&gt;
&lt;br /&gt;
Для підняття надійності міжмережевий екран ''PIX Firewall'' передбачає можливість встановлення в здвоєній конфігурації в режимі &amp;quot;гарячого резервування&amp;quot;, за рахунок чого в мережі виключається наявнысть єдиної точки можливого збою. Якщо два PIX-екрани будуть працювати в паралельному режимі й один з них вийде з ладу, то другий у прозорому режимі &amp;quot;підхоплюючого&amp;quot; виконання всіх функцій забезпечення безпеки.&lt;br /&gt;
&lt;br /&gt;
==Висока продуктивність==&lt;br /&gt;
&lt;br /&gt;
Міжмережевий екран ''Cisco PIX Firewall'' підтримує більше 256 тисяч одночасних з'єднань і, відповідно, забезпечує підтримку сотень і тисяч користувачів без зниження продуктивності. Повністю завантажений FIX Firewall забезпечує пропускну здатність до 240 Мбіт/с, тобто набагато вище за любий міжмережевий екран, на базі ОС UNIX або ОС Microsoft Windows NT.&lt;br /&gt;
&lt;br /&gt;
==Низька вартість використання і впровадження==&lt;br /&gt;
&lt;br /&gt;
Користувачі, що не мають спеціальної підготовки, можуть настроїти PIX менш ніж за 5 хвилин. Для спрощеня подальшої настройки, в комплект поставки PIX Firewall входит проста у використані графічна оболонка Security Manager. Cisco також пропонує адаптер шифрування Cisco PIX Private Link encryption card. При встановлені цього адаптера в PIX Firewall забезпечується можливість передачі через IP-мережі загального користування, наприклад, Інтернет, закодованих IP-пакетів із використанням стандартної технології IPSec і протоколів IETF, наприклад, АН (Authentication Header) і ESP (Encapsulating Security Payload).&lt;br /&gt;
&lt;br /&gt;
==Рішення проблеми недостачі IP-адрес==&lt;br /&gt;
&lt;br /&gt;
Міжмережевий екран Cisco PIX Firewall також дозволяє уникнути проблеми недостачі адрес при розширенні і зміні IP-мереж. Технологія трансляції мережевих адрес Network Address Translation (NAT) робить можливим використання в приватній мережі як існуючих адрес, так і резервних адресних просторів. PIX також можна налаштувати для загального використання транслюючих і не транслюючих адрес, дозволючи використовувати як адресний простір приватної IP-мережі, так і зареєстровані IP-адреси.&lt;br /&gt;
&lt;br /&gt;
==Основні можливості==&lt;br /&gt;
&lt;br /&gt;
Чітка система захисту від несанкціонованого доступу на рівні з'єднання забезпечує безпеку ресурсів внутрішньої мережі.&lt;br /&gt;
&lt;br /&gt;
Технологія Cut Through Proxy дозволяє контролювати як вхідні, так і вихидні з'єднання на базі таких протоколів безпеки, як Terminal Access Controller Access Control System (TACACS) або Remote Access Dial-In User Service(RADIUS).&lt;br /&gt;
&lt;br /&gt;
До шести мережевих інтерфейсів для розширення правил захисту.&lt;br /&gt;
&lt;br /&gt;
Графічний інтерфейс адміністратора Security Manager презначений, для настройки до 100 міжмережевих екранів PIX з єдиною консолі.&lt;br /&gt;
&lt;br /&gt;
Динамічна і статична трансляції адрес.&lt;br /&gt;
&lt;br /&gt;
Підтримка протоколу сіткового управління SNMP.&lt;br /&gt;
&lt;br /&gt;
Текуча інформація з використанням ведення журналу системних подій (syslog).&lt;br /&gt;
&lt;br /&gt;
Прозора підтримка всіх основних мережевих послуг, таких як World Wide Web (WWW), File Transfer Protocol (FTP), Telnel, Archie, Gopher.&lt;br /&gt;
&lt;br /&gt;
Підтримка мультимедіа додатків, включаючи Progressive Networks RealAudio &amp;amp; Read-Video, Xing StreamWorks, White Pines CU-SeeMe, Vocal Tec Internet Phone, VDOnet VDOLive, Microsoft NetShow і VXtreme Web Theater.&lt;br /&gt;
&lt;br /&gt;
Безпечна вмонтована операційна система реального часу.&lt;br /&gt;
&lt;br /&gt;
Відсутня необхідність обновлення ПЗ на робочих станціях і маршрутизаторах.&lt;br /&gt;
&lt;br /&gt;
Повний доступ до ресурсів мережі Інтернет для незареєстрованих користувачів внутрішньої мережі.&lt;br /&gt;
&lt;br /&gt;
Сумісність з маршрутизаторами, працюючими під управлінням Cisco IOS™.&lt;br /&gt;
&lt;br /&gt;
Підтримка відеоконференцій по протоколу Н.323, включаючи Microsoft NetMeeting, Intel Internet Video Phone и White Pine Meeting Point.&lt;br /&gt;
&lt;br /&gt;
Декілька можливих варіантів програмної та апаратної комплектації.&lt;br /&gt;
&lt;br /&gt;
Засоби централізованого адміністрування.&lt;br /&gt;
&lt;br /&gt;
Повідомлення про важливі події на пейджер або по електронній пошті.&lt;br /&gt;
&lt;br /&gt;
Підтримка інтерфейсів Ethernet, Fast Ethernet, Token Ring и FDDI.&lt;br /&gt;
&lt;br /&gt;
Підтримка віртуальних власних мереж (VirTual Private Network) із використанням стан-дартної технології IPSec.&lt;br /&gt;
 &lt;br /&gt;
Висока продуктивність.&lt;br /&gt;
 &lt;br /&gt;
Інтеграція з іншими рішеннями компанії Cisco, наприклад, із сервером ідентифіка-ції користувачів CiscoSeсure.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D1%96_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B8_%D0%B7%D0%B0%D1%85%D0%B8%D1%81%D1%82%D1%83</id>
		<title>Програмні методи захисту</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D1%96_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B8_%D0%B7%D0%B0%D1%85%D0%B8%D1%81%D1%82%D1%83"/>
				<updated>2010-11-30T21:03:31Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Фаєрвол''' є обов'язковим для більшості користувачів Інтернету, але на відміну від першого вимагає більшої уваги. Для тих, хто не бажає розбиратися з усіма параметрами та повідомленнями можна рекомендувати Sunbelt Personal Firewall, який викликає мінімальну кількість проблем і володіє до того ж непоганим і розумним захистом.&lt;br /&gt;
&lt;br /&gt;
Якщо для користувача якість захисту переважає простоту використання йому підійде ''Comodo Internet Security''. Це повноцінний пакет для захисту комп'ютера з відмінною системою виявлення вторгнень. Крім фаєрвола в нього входить антивірус і Comodo Defense +. Антивірус Comodo не відрізняється добрими даними, тому при інсталяції Comodo Internet Security його краще відімкнути і використовувати інший.&lt;br /&gt;
&lt;br /&gt;
Для користувачів, які не розуміють англійську, можна запропонувати старіший продукт компанії Comodo — ''Comodo Firewall Pro''. Мінуси — відсутність оновлень і підтримки ОС Windows Vista.&lt;br /&gt;
&lt;br /&gt;
Ще один безкоштовний фаєрвол з добрим захистом — ''Online Armor Personal Firewall Free''. Цей продукт розвивається не такий тривалий час як його конкуренти, але показує відмінні показники в тестах. Відрізняється полегшеним інтерфейсом і низькими системними вимогами.&lt;br /&gt;
&lt;br /&gt;
Для найменш вимогливих до захисту користувачів залишається фаєрвол ''ZoneAlarm''. Це дуже урізана версія платного ''ZoneAlarm Pro''. Захисні властивості останніх безкоштовних версій дуже бідні. До того ж на деяких комп'ютерах, ZoneAlarm може входити в конфлікт з іншими програмами. Плюс — після налаштування, майже не звертає на себе увагу.&lt;br /&gt;
&lt;br /&gt;
==Основні програмні рішення захисту==&lt;br /&gt;
 &lt;br /&gt;
'''Comodo Internet Security''' — пакет ПЗ для комплексного захисту комп'ютера від інтернет-загроз.&lt;br /&gt;
&lt;br /&gt;
'''Online Armor Personal Firewall Free''' — персональний фаєрвол з системою HIPS і безліччю функцій.&lt;br /&gt;
&lt;br /&gt;
'''Outpost Firewall Free''' — це персональний файрвол з відкритою архітектурою і підтримкою плагінів.&lt;br /&gt;
&lt;br /&gt;
'''ZoneAlarm Free''' — файервол для захисту ПК під час його роботи в локальній мережі або в Інтернеті.&lt;br /&gt;
&lt;br /&gt;
'''Comodo Firewall''' — один з кращих файерволів, що нарівні конкурує з платними аналогами.&lt;br /&gt;
&lt;br /&gt;
'''PC Tools Firewall Plus''' — ефективний персональний брандмауер, орієнтований на домашнє використання.&lt;br /&gt;
&lt;br /&gt;
'''Sunbelt Kerio Personal Firewall''' — файервол, що захищає від атак хакерів і витоку даних.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D1%96_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B8_%D0%B7%D0%B0%D1%85%D0%B8%D1%81%D1%82%D1%83</id>
		<title>Програмні методи захисту</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BD%D1%96_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%B8_%D0%B7%D0%B0%D1%85%D0%B8%D1%81%D1%82%D1%83"/>
				<updated>2010-11-25T10:52:45Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: Створена сторінка: Фаєрвол є обов'язковим для більшості користувачів Інтернету, але на відміну від першого ...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Фаєрвол є обов'язковим для більшості користувачів Інтернету, але на відміну від першого вимагає більшої уваги. Для тих, хто не бажає розбиратися з усіма параметрами та повідомленнями можна рекомендувати Sunbelt Personal Firewall, який викликає мінімальну кількість проблем і володіє до того ж непоганим і розумним захистом.&lt;br /&gt;
&lt;br /&gt;
Якщо для користувача якість захисту переважає простоту використання йому підійде Comodo Internet Security. Це повноцінний пакет для захисту комп'ютера з відмінною системою виявлення вторгнень. Крім фаєрвола в нього входить антивірус і Comodo Defense +. Антивірус Comodo не відрізняється добрими даними, тому при інсталяції Comodo Internet Security його краще відімкнути і використовувати інший.&lt;br /&gt;
&lt;br /&gt;
Для користувачів, які не розуміють англійську, можна запропонувати старіший продукт компанії Comodo — Comodo Firewall Pro. Мінуси — відсутність оновлень і підтримки ОС Windows Vista.&lt;br /&gt;
&lt;br /&gt;
Ще один безкоштовний фаєрвол з добрим захистом — Online Armor Personal Firewall Free. Цей продукт розвивається не такий тривалий час як його конкуренти, але показує відмінні показники в тестах. Відрізняється полегшеним інтерфейсом і низькими системними вимогами.&lt;br /&gt;
&lt;br /&gt;
Для найменш вимогливих до захисту користувачів залишається фаєрвол ZoneAlarm. Це дуже урізана версія платного ZoneAlarm Pro. Захисні властивості останніх безкоштовних версій дуже бідні. До того ж на деяких комп'ютерах, ZoneAlarm може входити в конфлікт з іншими програмами. Плюс — після налаштування, майже не звертає на себе увагу.&lt;br /&gt;
&lt;br /&gt;
Основні програмні рішення захисту &lt;br /&gt;
 &lt;br /&gt;
Comodo Internet SecurityComodo Internet Security — пакет ПЗ для комплексного захисту комп'ютера від інтернет-загроз.&lt;br /&gt;
&lt;br /&gt;
Online Armor Personal Firewall FreeOnline Armor Personal Firewall Free — персональний фаєрвол з системою HIPS і безліччю функцій.&lt;br /&gt;
&lt;br /&gt;
Outpost Firewall FreeOutpost Firewall Free — це персональний файрвол з відкритою архітектурою і підтримкою плагінів.&lt;br /&gt;
&lt;br /&gt;
ZoneAlarm FreeZoneAlarm Free — файервол для захисту ПК під час його роботи в локальній мережі або в Інтернеті.&lt;br /&gt;
&lt;br /&gt;
Comodo FirewallComodo Firewall — один з кращих файерволів, що нарівні конкурує з платними аналогами.&lt;br /&gt;
&lt;br /&gt;
PC Tools Firewall PlusPC Tools Firewall Plus — ефективний персональний брандмауер, орієнтований на домашнє використання.&lt;br /&gt;
&lt;br /&gt;
Sunbelt Kerio Personal FirewallSunbelt Kerio Personal Firewall — файервол, що захищає від атак хакерів і витоку даних.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:%D0%86%D0%BD%D1%81%D1%82%D0%B0%D0%BB%D1%8F%D1%86%D1%96%D1%8F_DSL</id>
		<title>Обговорення:Інсталяція DSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:%D0%86%D0%BD%D1%81%D1%82%D0%B0%D0%BB%D1%8F%D1%86%D1%96%D1%8F_DSL"/>
				<updated>2010-11-09T08:23:05Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Не описаний процес встановлення спліттера при підключенні абонентського обладнання.&lt;br /&gt;
&lt;br /&gt;
[[Користувач:Tkanoff|Tkanoff]] 10:20, 9 листопада 2010 (EET)&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:%D0%86%D0%BD%D1%81%D1%82%D0%B0%D0%BB%D1%8F%D1%86%D1%96%D1%8F_DSL</id>
		<title>Обговорення:Інсталяція DSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:%D0%86%D0%BD%D1%81%D1%82%D0%B0%D0%BB%D1%8F%D1%86%D1%96%D1%8F_DSL"/>
				<updated>2010-11-09T08:20:46Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: Створена сторінка: Не описаний процес встановлення спліттера при встановленні абонентського обладнання.  ~~~~&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Не описаний процес встановлення спліттера при встановленні абонентського обладнання.&lt;br /&gt;
&lt;br /&gt;
[[Користувач:Tkanoff|Tkanoff]] 10:20, 9 листопада 2010 (EET)&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F</id>
		<title>Аутентифікація</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F"/>
				<updated>2010-10-24T22:09:59Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Автентифікáція'''  — процедура встановлення належності користувачеві інформації в системі пред'явленого ним ідентифікатора.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
З позицій інформаційної безпеки '''Автентифікація''' є частиною процедури надання доступу для роботи в інформаційній системі, наступною після ідентифікації і передує авторизації.&lt;br /&gt;
&lt;br /&gt;
==Механізм Автентифікації==&lt;br /&gt;
Один із способів автентифікації в інформаційній системі полягає у ''попередній ідентифікації'' на основі користувацького ідентифікатора ('''«логіна»''' — реєстраційного імені користувача) і '''пароля''' — певної конфіденційної інформації, знання якої передбачає володіння певним ресурсом в мережі. Отримавши введений користувачем логін и пароль, комп'ютер порівнює їх зі значенням, яке зберігається в спеціальній ''захищеній'' базі даних і, у випадку успішної автентифікації проводить авторизацію з подальшим допуском користувача до роботи в системі.&lt;br /&gt;
&lt;br /&gt;
==Види Автентифікації==&lt;br /&gt;
&lt;br /&gt;
===Слабка Автентифікація===&lt;br /&gt;
Традиційну автентифікацію за допомогою пароля називають ще '''однофакторною''' або '''слабкою'''. Оскільки за наявності певних ресурсів перехоплення або підбір пароля є справою часу. Не останню роль в цьому грає людський чинник — чим стійкішим до взлому методом підбору є пароль, тим важче його запам'ятати людині і тим вище ймовірність що він буде додатково записаний, що підвищить ймовірність його перехоплення або викрадення. І навпаки — легкі для запам'ятовування паролі (наприклад часто вживані слова або фрази, як приклад, дати народження, імена близьких, назви моніторів чи найближчого обладнання) в плані стійкості до злому є дуже не вдалими. &lt;br /&gt;
Як вихід, впроваджуються ''одноразові паролі'', проте їхнє перехоплення також можливе.&lt;br /&gt;
&lt;br /&gt;
===Сильна Автентифікація===&lt;br /&gt;
Паралельно, за необхідності, використовується '''сильна''' або '''багатофакторна''' автентифікація — на основі двох чи більше факторів. В цьому випадку для автентифікації використостовується не лише інформація відома користувачеві, а й додаткові фактори. Наприклад:&lt;br /&gt;
* властивість, якою володіє суб'єкт;&lt;br /&gt;
* знання - інформація, яку знає суб'єкт;&lt;br /&gt;
* володіння - річ, якою володіє суб'єкт.&lt;br /&gt;
&lt;br /&gt;
==Способи Автентифікації==&lt;br /&gt;
===Парольна===&lt;br /&gt;
Здійснюється на основі володіння користувачем певної конфіденційноїх інформації.&lt;br /&gt;
&lt;br /&gt;
=== Біометрична ===&lt;br /&gt;
&lt;br /&gt;
'''Біометрична''' аутентифікація основана на унікальності певних антропометричних характеристик людини. У галузі інформаційних технологій термін ''біометрія'' застосовується в значенні технології ідентифікації особистості. Біометричний захист більш ефективний ніж такі методи як, використання смарт-карток, паролів, PIN-кодів. Найбільш часто використовуються:&lt;br /&gt;
# Параметри голосу.&lt;br /&gt;
# Візерунок райдужної оболонки ока і карта сітчатки ока.&lt;br /&gt;
# Риси обличчя.&lt;br /&gt;
# Форма долоні.&lt;br /&gt;
# Відбитки пальців.&lt;br /&gt;
# Форма і спосіб підпису.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===За допомогою унікального предмета===&lt;br /&gt;
Здійснюється за допомогою додаткових предметів (токен, смарт-карта) або атрибутів (криптографічний сертифікат).&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F</id>
		<title>Аутентифікація</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F"/>
				<updated>2010-10-24T22:08:51Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Автентифікáція'''  — процедура встановлення належності користувачеві інформації в системі пред'явленого ним ідентифікатора.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
З позицій інформаційної безпеки '''Автентифікація''' є частиною процедури надання доступу для роботи в інформаційній системі, наступною після ідентифікації і передує авторизації.&lt;br /&gt;
&lt;br /&gt;
==Механізм Автентифікації==&lt;br /&gt;
Один із способів автентифікації в інформаційній системі полягає у ''попередній ідентифікації'' на основі користувацького ідентифікатора ('''«логіна»''' — реєстраційного імені користувача) і '''пароля''' — певної конфіденційної інформації, знання якої передбачає володіння певним ресурсом в мережі. Отримавши введений користувачем логін и пароль, комп'ютер порівнює їх зі значенням, яке зберігається в спеціальній ''захищеній'' базі даних і, у випадку успішної автентифікації проводить авторизацію з подальшим допуском користувача до роботи в системі.&lt;br /&gt;
&lt;br /&gt;
==Види Автентифікації==&lt;br /&gt;
&lt;br /&gt;
===Слабка Автентифікація===&lt;br /&gt;
Традиційну автентифікацію за допомогою пароля називають ще '''однофакторною''' або '''слабкою'''. Оскільки за наявності певних ресурсів перехоплення або підбір пароля є справою часу. Не останню роль в цьому грає людський чинник — чим стійкішим до взлому методом підбору є пароль, тим важче його запам'ятати людині і тим вище ймовірність що він буде додатково записаний, що підвищить ймовірність його перехоплення або викрадення. І навпаки — легкі для запам'ятовування паролі (наприклад часто вживані слова або фрази, як приклад, дати народження, імена близьких, назви моніторів чи найближчого обладнання) в плані стійкості до злому є дуже не вдалими. &lt;br /&gt;
Як вихід, впроваджуються ''одноразові паролі'', проте їхнє перехоплення також можливе.&lt;br /&gt;
&lt;br /&gt;
===Сильна Автентифікація===&lt;br /&gt;
Паралельно, за необхідності, використовується '''сильна''' або '''багатофакторна''' автентифікація — на основі двох чи більше факторів. В цьому випадку для автентифікації використостовується не лише інформація відома користувачеві, а й додаткові фактори. Наприклад:&lt;br /&gt;
* властивість, якою володіє суб'єкт;&lt;br /&gt;
* знання - інформація, яку знає суб'єкт;&lt;br /&gt;
* володіння - річ, якою володіє суб'єкт.&lt;br /&gt;
&lt;br /&gt;
==Способи Автентифікації==&lt;br /&gt;
===Парольна===&lt;br /&gt;
Здійснюється на основі володіння користувачем певної конфіденційноїх інформації.&lt;br /&gt;
&lt;br /&gt;
=== Біометрична ===&lt;br /&gt;
&lt;br /&gt;
'''Біометрична''' аутентифікація основана на унікальності певних антропометричних характеристик людини. У галузі інформаційних технологій термін ''біометрія'' застосовується в значенні технології ідентифікації особистості. Біометричний захист більш ефективний ніж такі методи як, використання смарт-карток, паролів, PIN-кодів. Найбільш часто використовуються:&lt;br /&gt;
# Параметри голосу.&lt;br /&gt;
# Візерунок райдужної оболонки ока і карта сітчатки ока.&lt;br /&gt;
# Риси обличчя.&lt;br /&gt;
# Форма долоні.&lt;br /&gt;
# Відбитки пальців.&lt;br /&gt;
# Форма і спосіб підпису.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F</id>
		<title>Аутентифікація</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F"/>
				<updated>2010-10-24T22:08:07Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Автентифікáція'''  — процедура встановлення належності користувачеві інформації в системі пред'явленого ним ідентифікатора.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
З позицій інформаційної безпеки '''Автентифікація''' є частиною процедури надання доступу для роботи в інформаційній системі, наступною після ідентифікації і передує авторизації.&lt;br /&gt;
&lt;br /&gt;
==Механізм Автентифікації==&lt;br /&gt;
Один із способів автентифікації в інформаційній системі полягає у ''попередній ідентифікації'' на основі користувацького ідентифікатора ('''«логіна»''' — реєстраційного імені користувача) і '''пароля''' — певної конфіденційної інформації, знання якої передбачає володіння певним ресурсом в мережі. Отримавши введений користувачем логін и пароль, комп'ютер порівнює їх зі значенням, яке зберігається в спеціальній ''захищеній'' базі даних і, у випадку успішної автентифікації проводить авторизацію з подальшим допуском користувача до роботи в системі.&lt;br /&gt;
&lt;br /&gt;
==Види Автентифікації==&lt;br /&gt;
&lt;br /&gt;
===Слабка Автентифікація===&lt;br /&gt;
Традиційну автентифікацію за допомогою пароля називають ще '''однофакторною''' або '''слабкою'''. Оскільки за наявності певних ресурсів перехоплення або підбір пароля є справою часу. Не останню роль в цьому грає людський чинник — чим стійкішим до взлому методом підбору є пароль, тим важче його запам'ятати людині і тим вище ймовірність що він буде додатково записаний, що підвищить ймовірність його перехоплення або викрадення. І навпаки — легкі для запам'ятовування паролі (наприклад часто вживані слова або фрази, як приклад, дати народження, імена близьких, назви моніторів чи найближчого обладнання) в плані стійкості до злому є дуже не вдалими. &lt;br /&gt;
Як вихід, впроваджуються ''одноразові паролі'', проте їхнє перехоплення також можливе.&lt;br /&gt;
&lt;br /&gt;
===Сильна Автентифікація===&lt;br /&gt;
Паралельно, за необхідності, використовується '''сильна''' або '''багатофакторна''' автентифікація — на основі двох чи більше факторів. В цьому випадку для автентифікації використостовується не лише інформація відома користувачеві, а й додаткові фактори. Наприклад:&lt;br /&gt;
* властивість, якою володіє суб'єкт;&lt;br /&gt;
* знання - інформація, яку знає суб'єкт;&lt;br /&gt;
* володіння - річ, якою володіє суб'єкт.&lt;br /&gt;
&lt;br /&gt;
==Способи Автентифікації==&lt;br /&gt;
===Парольна===&lt;br /&gt;
Здійснюється на основі володіння користувачем певної конфіденційноїх інформації.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F</id>
		<title>Аутентифікація</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F"/>
				<updated>2010-10-24T22:07:33Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Автентифікáція'''  — процедура встановлення належності користувачеві інформації в системі пред'явленого ним ідентифікатора.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
З позицій інформаційної безпеки '''Автентифікація''' є частиною процедури надання доступу для роботи в інформаційній системі, наступною після ідентифікації і передує авторизації.&lt;br /&gt;
&lt;br /&gt;
==Механізм Автентифікації==&lt;br /&gt;
Один із способів автентифікації в інформаційній системі полягає у ''попередній ідентифікації'' на основі користувацького ідентифікатора ('''«логіна»''' — реєстраційного імені користувача) і '''пароля''' — певної конфіденційної інформації, знання якої передбачає володіння певним ресурсом в мережі. Отримавши введений користувачем логін и пароль, комп'ютер порівнює їх зі значенням, яке зберігається в спеціальній ''захищеній'' базі даних і, у випадку успішної автентифікації проводить авторизацію з подальшим допуском користувача до роботи в системі.&lt;br /&gt;
&lt;br /&gt;
==Види Автентифікації==&lt;br /&gt;
&lt;br /&gt;
===Слабка Автентифікація===&lt;br /&gt;
Традиційну автентифікацію за допомогою пароля називають ще '''однофакторною''' або '''слабкою'''. Оскільки за наявності певних ресурсів перехоплення або підбір пароля є справою часу. Не останню роль в цьому грає людський чинник — чим стійкішим до взлому методом підбору є пароль, тим важче його запам'ятати людині і тим вище ймовірність що він буде додатково записаний, що підвищить ймовірність його перехоплення або викрадення. І навпаки — легкі для запам'ятовування паролі (наприклад часто вживані слова або фрази, як приклад, дати народження, імена близьких, назви моніторів чи найближчого обладнання) в плані стійкості до злому є дуже не вдалими. &lt;br /&gt;
Як вихід, впроваджуються ''одноразові паролі'', проте їхнє перехоплення також можливе.&lt;br /&gt;
&lt;br /&gt;
===Сильна Автентифікація===&lt;br /&gt;
Паралельно, за необхідності, використовується '''сильна''' або '''багатофакторна''' автентифікація — на основі двох чи більше факторів. В цьому випадку для автентифікації використостовується не лише інформація відома користувачеві, а й додаткові фактори. Наприклад:&lt;br /&gt;
* властивість, якою володіє суб'єкт;&lt;br /&gt;
* знання - інформація, яку знає суб'єкт;&lt;br /&gt;
* володіння - річ, якою володіє суб'єкт.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F</id>
		<title>Аутентифікація</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F"/>
				<updated>2010-10-24T22:06:48Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Автентифікáція'''  — процедура встановлення належності користувачеві інформації в системі пред'явленого ним ідентифікатора.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
З позицій інформаційної безпеки '''Автентифікація''' є частиною процедури надання доступу для роботи в інформаційній системі, наступною після ідентифікації і передує авторизації.&lt;br /&gt;
&lt;br /&gt;
==Механізм Автентифікації==&lt;br /&gt;
Один із способів автентифікації в інформаційній системі полягає у ''попередній ідентифікації'' на основі користувацького ідентифікатора ('''«логіна»''' — реєстраційного імені користувача) і '''пароля''' — певної конфіденційної інформації, знання якої передбачає володіння певним ресурсом в мережі. Отримавши введений користувачем логін и пароль, комп'ютер порівнює їх зі значенням, яке зберігається в спеціальній ''захищеній'' базі даних і, у випадку успішної автентифікації проводить авторизацію з подальшим допуском користувача до роботи в системі.&lt;br /&gt;
&lt;br /&gt;
==Види Автентифікації==&lt;br /&gt;
&lt;br /&gt;
===Слабка Автентифікація===&lt;br /&gt;
Традиційну автентифікацію за допомогою пароля називають ще '''однофакторною''' або '''слабкою'''. Оскільки за наявності певних ресурсів перехоплення або підбір пароля є справою часу. Не останню роль в цьому грає людський чинник — чим стійкішим до взлому методом підбору є пароль, тим важче його запам'ятати людині і тим вище ймовірність що він буде додатково записаний, що підвищить ймовірність його перехоплення або викрадення. І навпаки — легкі для запам'ятовування паролі (наприклад часто вживані слова або фрази, як приклад, дати народження, імена близьких, назви моніторів чи найближчого обладнання) в плані стійкості до злому є дуже не вдалими. &lt;br /&gt;
Як вихід, впроваджуються ''одноразові паролі'', проте їхнє перехоплення також можливе.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F</id>
		<title>Аутентифікація</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F"/>
				<updated>2010-10-24T22:04:04Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Автентифікáція'''  — процедура встановлення належності користувачеві інформації в системі пред'явленого ним ідентифікатора.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
З позицій інформаційної безпеки '''Автентифікація''' є частиною процедури надання доступу для роботи в інформаційній системі, наступною після ідентифікації і передує авторизації.&lt;br /&gt;
&lt;br /&gt;
==Механізм Автентифікації==&lt;br /&gt;
Один із способів автентифікації в інформаційній системі полягає у ''попередній ідентифікації'' на основі користувацького ідентифікатора ('''«логіна»''' — реєстраційного імені користувача) і '''пароля''' — певної конфіденційної інформації, знання якої передбачає володіння певним ресурсом в мережі. Отримавши введений користувачем логін и пароль, комп'ютер порівнює їх зі значенням, яке зберігається в спеціальній ''захищеній'' базі даних і, у випадку успішної автентифікації проводить авторизацію з подальшим допуском користувача до роботи в системі.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F</id>
		<title>Аутентифікація</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F"/>
				<updated>2010-10-24T22:03:46Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Автентифікáція'''  — процедура встановлення належності користувачеві інформації в системі пред'явленого ним ідентифікатора.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
З позицій інформаційної безпеки '''Автентифікація''' є частиною процедури надання доступу для роботи в інформаційній системі, наступною після ідентифікації і передує авторизації.&lt;br /&gt;
&lt;br /&gt;
'''==Механізм Автентифікації=='''&lt;br /&gt;
Один із способів автентифікації в інформаційній системі полягає у ''попередній ідентифікації'' на основі користувацького ідентифікатора ('''«логіна»''' — реєстраційного імені користувача) і '''пароля''' — певної конфіденційної інформації, знання якої передбачає володіння певним ресурсом в мережі. Отримавши введений користувачем логін и пароль, комп'ютер порівнює їх зі значенням, яке зберігається в спеціальній ''захищеній'' базі даних і, у випадку успішної автентифікації проводить авторизацію з подальшим допуском користувача до роботи в системі.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F</id>
		<title>Аутентифікація</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F"/>
				<updated>2010-10-24T22:03:08Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Автентифікáція'''  — процедура встановлення належності користувачеві інформації в системі пред'явленого ним ідентифікатора.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
З позицій інформаційної безпеки '''Автентифікація''' є частиною процедури надання доступу для роботи в інформаційній системі, наступною після ідентифікації і передує авторизації.&lt;br /&gt;
&lt;br /&gt;
==Механізм Автентифікації==&lt;br /&gt;
Один із способів автентифікації в інформаційній системі полягає у попередній ідентифікації на основі користувацького ідентифікатора («логіна» — реєстраційного імені користувача) і пароля — певної конфіденційної інформації, знання якої передбачає володіння певним ресурсом в мережі. Отримавши введений користувачем логін и пароль, комп'ютер порівнює їх зі значенням, яке зберігається в спеціальній захищеній базі даних і, у випадку успішної автентифікації проводить авторизацію з подальшим допуском користувача до роботи в системі.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F</id>
		<title>Аутентифікація</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F"/>
				<updated>2010-10-24T22:02:00Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Автентифікáція'''  — процедура встановлення належності користувачеві інформації в системі пред'явленого ним ідентифікатора.&amp;lt;br&amp;gt;&lt;br /&gt;
З позицій інформаційної безпеки '''Автентифікація''' є частиною процедури надання доступу для роботи в інформаційній системі, наступною після ідентифікації і передує авторизації.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F</id>
		<title>Аутентифікація</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F"/>
				<updated>2010-10-24T22:00:29Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Автентифікáція'''  — процедура встановлення належності користувачеві інформації в системі пред'явленого ним ідентифікатора.&lt;br /&gt;
З позицій інформаційної безпеки '''Автентифікація''' є частиною процедури надання доступу для роботи в інформаційній системі, наступною після ідентифікації і передує авторизації.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F</id>
		<title>Аутентифікація</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%90%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D1%96%D0%BA%D0%B0%D1%86%D1%96%D1%8F"/>
				<updated>2010-10-24T21:59:56Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: Створена сторінка: Автентифікáція  — процедура встановлення належності користувачеві інформації в систем...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Автентифікáція  — процедура встановлення належності користувачеві інформації в системі пред'явленого ним ідентифікатора.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9C%D1%96%D0%B6%D0%BC%D0%B5%D1%80%D0%B5%D0%B6%D0%B5%D0%B2%D0%B8%D0%B9_%D0%B5%D0%BA%D1%80%D0%B0%D0%BD</id>
		<title>Міжмережевий екран</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9C%D1%96%D0%B6%D0%BC%D0%B5%D1%80%D0%B5%D0%B6%D0%B5%D0%B2%D0%B8%D0%B9_%D0%B5%D0%BA%D1%80%D0%B0%D0%BD"/>
				<updated>2010-10-05T07:33:07Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Міжмережевий екран''' або '''мережевий екран''' - комплекс апаратних чи програмних засобів, що здійснює контроль і фільтрацію що проходять через нього мережевих пакетів на різних рівнях моделі OSI у відповідності з заданими правилами .&lt;br /&gt;
&lt;br /&gt;
Основним завданням мережевого екрану є захист комп'ютерних мереж або окремих вузлів від несанкціонованого доступу. Також мережеві екрани часто називають фільтрами, так як їх основне завдання - не пропускати (фільтрувати) пакети, що не підходять під критерії, визначені в конфігурації.&lt;br /&gt;
&lt;br /&gt;
Деякі мережеві екрани також дозволяють здійснювати трансляцію адрес - динамічну заміну внутрішньомережевих адрес або портів на зовнішні, що використовуються за межами ЛОМ.&lt;br /&gt;
&lt;br /&gt;
== Інші назви ==&lt;br /&gt;
'''Брандмауер''' - запозичений з німецької мови термін, що є аналогом англійського ''firewall'' в його оригінальному значенні (стіна, яка розділяє суміжні будівлі, оберігаючи від поширення пожеж).&lt;br /&gt;
&lt;br /&gt;
'''Файрволл''', '''файрвол''', '''файервол''', '''фаєрвол''' - утворено транслітерацією англійського терміна ''firewall'', еквівалентного терміну ''міжмережевий екран'', в даний час не є офіційним запозиченим словом в російській мові немає.&lt;br /&gt;
&lt;br /&gt;
== Різновиди мережевих екранів ==&lt;br /&gt;
Мережеві екрани підрозділяються на різні типи залежно від таких характеристик:&lt;br /&gt;
* Чи забезпечує екран з'єднання між одним вузлом і мережею або між двома або більше різними мережами;&lt;br /&gt;
* Чи відбувається контроль потоку даних на мережевому рівні або більш високих рівнях моделі OSI;&lt;br /&gt;
* Відстежуються чи стану активних сполук чи ні.&lt;br /&gt;
&lt;br /&gt;
Залежно від охоплення контрольованих потоків даних мережеві екрани поділяються на:&lt;br /&gt;
* ''Традиційний мережевий''(або ''міжмережевий'') ''екран''- програма (або невід'ємна частина операційної системи) на шлюзі (сервері передавальному трафік між мережами) або апаратне рішення, контролюючі вхідні і вихідні потоки даних між підключеними мережами.&lt;br /&gt;
* ''Персональний мережевий екран''- програма, встановлена на комп'ютері користувача і призначена для захисту від несанкціонованого доступу тільки цього комп'ютера.&lt;br /&gt;
&lt;br /&gt;
Вироджений випадок - використання традиційного мережевого екрану сервером, для обмеження доступу до власних ресурсів.&lt;br /&gt;
&lt;br /&gt;
Залежно від рівня, на якому відбувається контроль доступу, існує поділ на мережеві екрани, що працюють на:&lt;br /&gt;
* ''Мережевому рівні'', коли фільтрація відбувається на основі адрес відправника і одержувача пакетів, портів транспортного рівня моделі OSI та статичних правил, заданих адміністратором;&lt;br /&gt;
* ''Сеансовому рівні''(також відомі як stateful) - відслідковують сеанси між додатками, що не пропускають пакунки порушують специфікації TCP / IP, що часто використовуються у зловмисних операціях - скануванні ресурсів, злому через неправильні реалізації TCP / IP, обрив / уповільнення з'єднань, ін'єкція даних.&lt;br /&gt;
* ''Рівні додатків'', фільтрація на підставі аналізу даних програми, що передаються всередині пакету. Такі типи екранів дозволяють блокувати передачу небажаної і потенційно небезпечної інформації, на підставі політик і налаштувань.&lt;br /&gt;
* Деякі рішення, які відносять до мережевих екранів рівня програми, представляють собою проксі-сервер и з деякими можливостями мережного екрана, реалізуючи прозорі проксі-сервери, зі спеціалізацією по протоколах. Можливості проксі-сервера і багатопротокольна спеціалізація роблять фільтрацію значно більш гнучкою, ніж на класичних мережевих екранах, але такі програми мають всі недоліки проксі-серверів (наприклад, анонімізація трафіку).&lt;br /&gt;
&lt;br /&gt;
Залежно від відстеження активних сполук мережеві екрани бувають:&lt;br /&gt;
* Stateless (проста фільтрація), які не відслідковують поточні з'єднання (наприклад, TCP), а фільтрують потік даних виключно на основі статичних правил;&lt;br /&gt;
* Stateful packet inspection (SPI) (фільтрація з урахуванням контексту), з відслідковуванням поточних з'єднань та пропуском тільки таких пакетів, які задовольняють логіці й алгоритмам роботи відповідних протоколів і додатків. Такі типи мережних екранів дозволяють ефективніше боротися з різними видами DoS-атак та уразливими місцями деяких мережевих протоколів. Крім того, вони забезпечують функціонування таких протоколів, як H.323, SIP, FTP і т. п., які використовують складні схеми передачі даних між адресатами, що погано піддаються опису статичними правилами, і, найчастіше, несумісних зі стандартними  мережевими екранами.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9C%D1%96%D0%B6%D0%BC%D0%B5%D1%80%D0%B5%D0%B6%D0%B5%D0%B2%D0%B8%D0%B9_%D0%B5%D0%BA%D1%80%D0%B0%D0%BD</id>
		<title>Міжмережевий екран</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9C%D1%96%D0%B6%D0%BC%D0%B5%D1%80%D0%B5%D0%B6%D0%B5%D0%B2%D0%B8%D0%B9_%D0%B5%D0%BA%D1%80%D0%B0%D0%BD"/>
				<updated>2010-10-05T07:31:46Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Міжмережевий екран''' або '''мережевий екран''' - комплекс апаратних чи програмних засобів, що здійснює контроль і фільтрацію що проходять через нього мережевих пакетів на різних рівнях моделі OSI у відповідності з заданими правилами .&lt;br /&gt;
&lt;br /&gt;
Основним завданням мережевого екрану є захист комп'ютерних мереж або окремих вузлів від несанкціонованого доступу. Також мережеві екрани часто називають фільтрами, так як їх основне завдання - не пропускати (фільтрувати) пакети, що не підходять під критерії, визначені в конфігурації.&lt;br /&gt;
&lt;br /&gt;
Деякі мережеві екрани також дозволяють здійснювати трансляцію адрес - динамічну заміну внутрішньомережевих адрес або портів на зовнішні, що використовуються за межами ЛОМ.&lt;br /&gt;
&lt;br /&gt;
== Інші назви ==&lt;br /&gt;
'''Брандмауер''' - запозичений з німецької мови термін, що є аналогом англійського ''firewall''в його оригінальному значенні (стіна, яка розділяє суміжні будівлі, оберігаючи від поширення пожеж).&lt;br /&gt;
&lt;br /&gt;
'''Файрволл''','''файрвол''','''файервол''','''фаєрвол''' - утворено [[транслітерація | транслітерацією]] англійського терміна''firewall'', еквівалентного терміну ''міжмережевий екран'', в даний час не є офіційним запозиченим словом в російській мові немає.&lt;br /&gt;
&lt;br /&gt;
== Різновиди мережевих екранів ==&lt;br /&gt;
Мережеві екрани підрозділяються на різні типи залежно від таких характеристик:&lt;br /&gt;
* Чи забезпечує екран з'єднання між одним вузлом і мережею або між двома або більше різними мережами;&lt;br /&gt;
* Чи відбувається контроль потоку даних на мережевому рівні або більш високих рівнях моделі OSI;&lt;br /&gt;
* Відстежуються чи стану активних сполук чи ні.&lt;br /&gt;
&lt;br /&gt;
Залежно від охоплення контрольованих потоків даних мережеві екрани поділяються на:&lt;br /&gt;
*''Традиційний мережевий''(або''міжмережевий'')''екран''- програма (або невід'ємна частина операційної системи) на шлюзі (сервері передавальному трафік між мережами) або апаратне рішення, контролюючі вхідні і вихідні потоки даних між підключеними мережами.&lt;br /&gt;
*''Персональний мережевий екран''- програма, встановлена на комп'ютері користувача і призначена для захисту від несанкціонованого доступу тільки цього комп'ютера.&lt;br /&gt;
&lt;br /&gt;
Вироджений випадок - використання традиційного мережевого екрану сервером, для обмеження доступу до власних ресурсів.&lt;br /&gt;
&lt;br /&gt;
Залежно від рівня, на якому відбувається контроль доступу, існує поділ на мережеві екрани, що працюють на:&lt;br /&gt;
*''Мережевому рівні'', коли фільтрація відбувається на основі адрес відправника і одержувача пакетів, портів транспортного рівня моделі OSI та статичних правил, заданих адміністратором;&lt;br /&gt;
*''Сеансовому рівні''(також відомі як stateful) - відслідковують сеанси між додатками, що не пропускають пакунки порушують специфікації TCP / IP, що часто використовуються у зловмисних операціях - скануванні ресурсів, злому через неправильні реалізації TCP / IP, обрив / уповільнення з'єднань, ін'єкція даних.&lt;br /&gt;
*''Рівні додатків'', фільтрація на підставі аналізу даних програми, що передаються всередині пакету. Такі типи екранів дозволяють блокувати передачу небажаної і потенційно небезпечної інформації, на підставі політик і налаштувань.&lt;br /&gt;
*: Деякі рішення, які відносять до мережевих екранів рівня програми, представляють собою проксі-сервер и з деякими можливостями мережного екрана, реалізуючи прозорі проксі-сервери, зі спеціалізацією по протоколах. Можливості проксі-сервера і багатопротокольна спеціалізація роблять фільтрацію значно більш гнучкою, ніж на класичних мережевих екранах, але такі програми мають всі недоліки проксі-серверів (наприклад, анонімізація трафіку).&lt;br /&gt;
&lt;br /&gt;
Залежно від відстеження активних сполук мережеві екрани бувають:&lt;br /&gt;
* Stateless (проста фільтрація), які не відслідковують поточні з'єднання (наприклад, TCP), а фільтрують потік даних виключно на основі статичних правил;&lt;br /&gt;
* Stateful packet inspection (SPI) (фільтрація з урахуванням контексту), з відслідковуванням поточних з'єднань та пропуском тільки таких пакетів, які задовольняють логіці й алгоритмам роботи відповідних протоколів і додатків. Такі типи мережних екранів дозволяють ефективніше боротися з різними видами DoS-атак та уразливими місцями деяких мережевих протоколів. Крім того, вони забезпечують функціонування таких протоколів, як H.323, SIP, FTP і т. п., які використовують складні схеми передачі даних між адресатами, що погано піддаються опису статичними правилами, і, найчастіше, несумісних зі стандартними  мережевими екранами.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9C%D1%96%D0%B6%D0%BC%D0%B5%D1%80%D0%B5%D0%B6%D0%B5%D0%B2%D0%B8%D0%B9_%D0%B5%D0%BA%D1%80%D0%B0%D0%BD</id>
		<title>Міжмережевий екран</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9C%D1%96%D0%B6%D0%BC%D0%B5%D1%80%D0%B5%D0%B6%D0%B5%D0%B2%D0%B8%D0%B9_%D0%B5%D0%BA%D1%80%D0%B0%D0%BD"/>
				<updated>2010-10-05T07:29:58Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Міжмережевий екран''' або'''мережевий екран''' - комплекс апаратних чи програмних засобів, що здійснює контроль і фільтрацію що проходять через нього мережевих пакетів на різних рівнях моделі OSI у відповідності з заданими правилами .&lt;br /&gt;
&lt;br /&gt;
Основним завданням мережевого екрану є захист комп'ютерних мереж або окремих вузлів від несанкціонованого доступу. Також мережеві екрани часто називають фільтрами, так як їх основне завдання - не пропускати (фільтрувати) пакети, що не підходять під критерії, визначені в конфігурації.&lt;br /&gt;
&lt;br /&gt;
Деякі мережеві екрани також дозволяють здійснювати трансляцію адрес - динамічну заміну внутрішньомережевих адрес або портів на зовнішні, що використовуються за межами ЛОМ.&lt;br /&gt;
&lt;br /&gt;
== Інші назви ==&lt;br /&gt;
'''Брандмауер''' - запозичений з німецької мови термін, що є аналогом англійського ''firewall''в його оригінальному значенні (стіна, яка розділяє суміжні будівлі, оберігаючи від поширення пожеж).&lt;br /&gt;
&lt;br /&gt;
'''Файрволл''','''файрвол''','''файервол''','''фаєрвол''' - утворено [[транслітерація | транслітерацією]] англійського терміна''firewall'', еквівалентного терміну ''міжмережевий екран'', в даний час не є офіційним запозиченим словом в російській мові немає.&lt;br /&gt;
&lt;br /&gt;
== Різновиди мережевих екранів ==&lt;br /&gt;
Мережеві екрани підрозділяються на різні типи залежно від таких характеристик:&lt;br /&gt;
* Чи забезпечує екран з'єднання між одним вузлом і мережею або між двома або більше різними мережами;&lt;br /&gt;
* Чи відбувається контроль потоку даних на мережевому рівні або більш високих рівнях моделі OSI;&lt;br /&gt;
* Відстежуються чи стану активних сполук чи ні.&lt;br /&gt;
&lt;br /&gt;
Залежно від охоплення контрольованих потоків даних мережеві екрани поділяються на:&lt;br /&gt;
*''Традиційний мережевий''(або''міжмережевий'')''екран''- програма (або невід'ємна частина операційної системи) на шлюзі (сервері передавальному трафік між мережами) або апаратне рішення, контролюючі вхідні і вихідні потоки даних між підключеними мережами.&lt;br /&gt;
*''Персональний мережевий екран''- програма, встановлена на комп'ютері користувача і призначена для захисту від несанкціонованого доступу тільки цього комп'ютера.&lt;br /&gt;
&lt;br /&gt;
Вироджений випадок - використання традиційного мережевого екрану сервером, для обмеження доступу до власних ресурсів.&lt;br /&gt;
&lt;br /&gt;
Залежно від рівня, на якому відбувається контроль доступу, існує поділ на мережеві екрани, що працюють на:&lt;br /&gt;
*''Мережевому рівні'', коли фільтрація відбувається на основі адрес відправника і одержувача пакетів, портів транспортного рівня моделі OSI та статичних правил, заданих адміністратором;&lt;br /&gt;
*''Сеансовому рівні''(також відомі як stateful) - відслідковують сеанси між додатками, що не пропускають пакунки порушують специфікації TCP / IP, що часто використовуються у зловмисних операціях - скануванні ресурсів, злому через неправильні реалізації TCP / IP, обрив / уповільнення з'єднань, ін'єкція даних.&lt;br /&gt;
*''Рівні додатків'', фільтрація на підставі аналізу даних програми, що передаються всередині пакету. Такі типи екранів дозволяють блокувати передачу небажаної і потенційно небезпечної інформації, на підставі політик і налаштувань.&lt;br /&gt;
*: Деякі рішення, які відносять до мережевих екранів рівня програми, представляють собою проксі-сервер и з деякими можливостями мережного екрана, реалізуючи прозорі проксі-сервери, зі спеціалізацією по протоколах. Можливості проксі-сервера і багатопротокольна спеціалізація роблять фільтрацію значно більш гнучкою, ніж на класичних мережевих екранах, але такі програми мають всі недоліки проксі-серверів (наприклад, анонімізація трафіку).&lt;br /&gt;
&lt;br /&gt;
Залежно від відстеження активних сполук мережеві екрани бувають:&lt;br /&gt;
* ((Langi | en | stateless)) (проста фільтрація), які не відслідковують поточні з'єднання (наприклад, [[TCP]]), а фільтрують потік даних виключно на основі статичних правил;&lt;br /&gt;
* ((Langi | en | stateful, [[Stateful Packet Inspection | stateful packet inspection (SPI )]]}} (фільтрація з урахуванням контексту), з відслідковуванням поточних з'єднань та пропуском тільки таких пакетів, які задовольняють логіці й алгоритмам роботи відповідних [ [Мережеві протоколи | протоколів]] і додатків. Такі типи мережних екранів дозволяють ефективніше боротися з різними видами [[DoS-атака | DoS-атак]] та уразливими місцями деяких мережевих протоколів. Крім того, вони забезпечують функціонування таких протоколів, як [[H.323]], [[SIP]], [[FTP]] і т. п., які використовують складні схеми передачі даних між адресатами, що погано піддаються опису статичними правилами, і, найчастіше, несумісних зі стандартними, ((langi | en | stateless)) мережевими екранами.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%91%D1%80%D0%B0%D0%BD%D0%B4%D0%BC%D0%B0%D1%83%D0%B5%D1%80_(FireWall)</id>
		<title>Брандмауер (FireWall)</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%91%D1%80%D0%B0%D0%BD%D0%B4%D0%BC%D0%B0%D1%83%D0%B5%D1%80_(FireWall)"/>
				<updated>2010-10-05T07:24:40Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Брандмауер''' ==&lt;br /&gt;
&lt;br /&gt;
'''Брандмауер''' - це система або комбінація систем, що дозволяють розділити мережу на дві або більше частин і реалізувати набір правил, що визначають умови проходження пакетів з однієї частини в іншу (див. рис.1). Як правило, ця межа проводиться між локальною мережею підприємства та INTERNET, хоча її можна провести і всередині локальної мережі підприємства. Брандмауер таким чином пропускає через себе весь трафік. Для кожного пакету, що проходить брандмауер приймає рішення пропускати його або відкинути. Для того щоб брандмауер міг приймати ці рішення, йому необхідно визначити набір правил. Про те, як ці правила описуються і які параметри використовуються при їх описі мова піде нижче.&lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Як правило, брандмауери функціонують на який-небудь UNIX платформі - найчастіше це BSDI, SunOS, AIX, IRIX і т.д., рідше - DOS, VMS, WNT, Windows NT. З апаратних платформ зустрічаються INTEL, Sun SPARC, RS6000, Alpha, HP PA-RISC, сімейство RISC процесорів R4400-R5000. Крім Ethernet, багато брандмауерів підтримують FDDI, Token Ring, 100Base-T, 100VG-AnyLan, різні серійні пристрої. Вимоги до оперативної пам'яті та обсягу жорсткого диска залежать від кількості машин, що захищаєть сегменті мережі, але найчастіше рекомендується мати не менше 32Мб ОЗУ і 500 Мб на жорсткому диску.&lt;br /&gt;
&lt;br /&gt;
Як правило, до операційної системи, під управлінням якої працює брандмауер вносяться зміни, мета яких - підвищення захисту самого брандмауера. Ці зміни зачіпають як ядро ОС, так і відповідні файли конфігурації. На самому брандмауері не дозволяється мати рахунків користувачів (а значить і потенційних дірок), лише рахунок адміністратора. Деякі брандмауери працюють тільки в одно-користувацькому режимі. Багато брандмауерів мають систему перевірки цілісності програмних кодів. При цьому контрольні суми програмних кодів зберігаються в захищеному місці і порівнюються при старті програми, щоб уникнути підміни програмного забезпечення.&lt;br /&gt;
&lt;br /&gt;
== Функції ==&lt;br /&gt;
Фаєрвол може бути у вигляді окремого приладу (так званий маршрутизатор або ''роутер''), або програмного забезпечення, що встановлюється на персональний комп'ютер чи проксі-сервер. Простий та дешевий фаєрвол може не мати такої гнучкої системи налаштувань правил фільтрації пакетів та ''трансляції'' адрес вхідного та вихідного трафіку (функція ''редиректу'').&lt;br /&gt;
&lt;br /&gt;
В залежності від активних з'єднань, що відслідковуються, фаєрволи розділяють на:&lt;br /&gt;
&lt;br /&gt;
* ''stateless'' (проста фільтрація), які не відслідковують поточні з'єднання (наприклад TCP), а фільтрують потік даних виключно на основі статичних правил;&lt;br /&gt;
* ''stateful'' (фільтрація з урахуванням контексту), з відслідковуванням поточних з'єднань та пропуском тільки таких пакетів, що задовольняють логіці й алгоритмам роботи відповідних протоколів та програм. Такі типи фаєрволів дозволяють ефективніше боротися з різноманітними DoS-атаками та вразливістю деяких протоколів мереж.&lt;br /&gt;
&lt;br /&gt;
== Типи фаєрволів ==&lt;br /&gt;
Для того щоб задовольнити вимогам широкого кола користувачів, існує три типи фаєрволів: мережного рівня, прикладного рівня і рівня з'єднання. Кожен з цих трьох типів використовує свій, відмінний від інших підхід до захисту мережі.&lt;br /&gt;
&lt;br /&gt;
* '''Фаєрвол мережного рівня''' представлений екрануючим маршрутизатором. Він контролює лише дані мережевого і транспортного рівнів (див.Модель OSI) службової інформації пакетів. Мінусом таких маршрутизаторів є те, що ще п'ять рівнів залишаються неконтрольованими. Нарешті, адміністратори, які працюють з екрануючими маршрутизаторами, повинні пам'ятати, що у більшості приладів, що здійснюють фільтрацію пакетів, відсутні механізми аудиту та подачі сигналу тривоги. Іншими  словами, маршрутизатори можуть піддаватися атакам і відбивати велику їх кількість, а адміністратори навіть не будуть проінформовані.&lt;br /&gt;
&lt;br /&gt;
* '''Фаєрвол прикладного рівня''' також відомий як проксі-сервер (сервер-посередник).Фаєрволи прикладного рівня встановлюють певний фізичний поділ між локальною мережею і Internet,тому вони відповідають найвищим вимогам безпеки. Проте, оскільки програма повинна аналізувати пакети і приймати рішення щодо контролю доступу до них, фаєрволи прикладного рівня неминуче зменшують продуктивність мережі, тому в якості сервера-посередника використовуються більш швидкі комп'ютери.&lt;br /&gt;
&lt;br /&gt;
* '''Фаєрвол рівня з'єднання''' схожий на фаєрвол прикладного рівня тим, що обидва вони являються серверами-посередниками. Відмінність полягає в тому, що фаєрволи прикладного рівня вимагають спеціального програмного забезпечення для кожної мережевої служби на зразок FTP або HTTP. Натомість, фаєрволи рівня з’єднання обслуговують велику кількість протоколів.&lt;br /&gt;
&lt;br /&gt;
Всі брандмауери можна розділити на три типи:&lt;br /&gt;
&lt;br /&gt;
• пакетні фільтри (packet filter)&lt;br /&gt;
&lt;br /&gt;
• сервера прикладного рівня (application gateways)&lt;br /&gt;
&lt;br /&gt;
• сервера рівня з'єднання (circuit gateways)&lt;br /&gt;
&lt;br /&gt;
Усі типи можуть одночасно зустрітися в одному брандмауері.&lt;br /&gt;
&lt;br /&gt;
== '''Пакетні фільтри''' ==&lt;br /&gt;
&lt;br /&gt;
Брандмауери з пакетними фільтрами приймають рішення про те, пропускати пакет або відкинути, переглядаючи IP-адреси, прапори або номер TCP портів в заголовку цього пакету. IP-адресу та номер порту - це інформація мережевого і транспортного рівнів відповідно, але пакетні фільтри використовують і інформацію прикладного рівня, тому що всі стандартні сервіси в TCP / IP асоціюються з певним номером порту.&lt;br /&gt;
&lt;br /&gt;
Для опису правил проходження пакетів складаються таблиці типу: &lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|Дія&lt;br /&gt;
|тип пакету&lt;br /&gt;
|адреса джер.&lt;br /&gt;
|порт джер.&lt;br /&gt;
|адреса признач.&lt;br /&gt;
|порт признач.&lt;br /&gt;
|прапори&lt;br /&gt;
|}&lt;br /&gt;
						 &lt;br /&gt;
Поле &amp;quot;дія&amp;quot; може приймати значення пропустити або відкинути. &lt;br /&gt;
&lt;br /&gt;
Тип пакета - TCP, UDP чи ICMP. &lt;br /&gt;
&lt;br /&gt;
Прапори - прапори із заголовка IP-пакета. &lt;br /&gt;
&lt;br /&gt;
Поля &amp;quot;порт джерела&amp;quot; і &amp;quot;порт призначення&amp;quot; мають сенс тільки для TCP і UDP пакетів. &lt;br /&gt;
&lt;br /&gt;
== '''Сервера прикладного рівня''' ==&lt;br /&gt;
 &lt;br /&gt;
Брандмауери з серверами прикладного рівня використовують сервера конкретних сервісів - TELNET, FTP і т.д. (proxy server), що запускаються на брандмауері і пропускають через себе весь трафік, що відноситься до даного сервісу. Таким чином, між клієнтом і сервером утворюються два з'єднання: від клієнта до брандмауера і від брандмауера до місця призначення. &lt;br /&gt;
&lt;br /&gt;
Повний набір підтримуваних серверів розрізняється для кожного конкретного брандмауера, однак найчастіше зустрічаються сервера для наступних сервісів: &lt;br /&gt;
&lt;br /&gt;
• термінали (Telnet, Rlogin) &lt;br /&gt;
&lt;br /&gt;
• передача файлів (Ftp) &lt;br /&gt;
&lt;br /&gt;
• електронна пошта (SMTP, POP3) &lt;br /&gt;
&lt;br /&gt;
• WWW (HTTP) &lt;br /&gt;
&lt;br /&gt;
• Gopher &lt;br /&gt;
&lt;br /&gt;
• Wais &lt;br /&gt;
&lt;br /&gt;
• X Window System (X11) &lt;br /&gt;
&lt;br /&gt;
• Принтер &lt;br /&gt;
&lt;br /&gt;
• Rsh &lt;br /&gt;
&lt;br /&gt;
• Finger &lt;br /&gt;
&lt;br /&gt;
• новини (NNTP) і т.д. &lt;br /&gt;
&lt;br /&gt;
Використання серверів прикладного рівня дозволяє вирішити важливе завдання - приховати від зовнішніх користувачів структуру локальної мережі, включаючи інформацію в заголовках поштових пакетів або служби доменних імен (DNS). Іншим позитивним моментом є можливість аутентифікації на користувацькому рівні (аутентифікація - процес підтвердження ідентичності якому-небудь в даному випадку це процес підтвердження, чи справді користувач є тим, за кого він себе видає). Трохи докладніше про аутентифікацію буде сказано нижче. &lt;br /&gt;
&lt;br /&gt;
При описі правил доступу використовуються такі параметри як: назва сервісу, ім'я користувача, допустимий часовий діапазон використання сервісу, комп'ютери, з яких можна користуватися сервісом, схеми аутентифікації. Сервера протоколів прикладного рівня дозволяють забезпечити найбільш високий рівень захисту - взаємодія із зовнішнім світом реалізується через невелику кількість прикладних програм, повністю контролюючих весь вхідний і вихідний трафік. &lt;br /&gt;
&lt;br /&gt;
== '''Сервера рівня з'єднання''' ==&lt;br /&gt;
 &lt;br /&gt;
Сервер рівня з'єднання являє собою транслятор TCP з'єднання. Користувач утворює з'єднання з певним портом на брандмауері, після чого останній виробляє з'єднання з місцем призначення по інший бік від брандмауера. Під час сеансу цей транслятор копіює байти в обох напрямках, діючи як дріт. &lt;br /&gt;
&lt;br /&gt;
Як правило, пункт призначення задається заздалегідь, в той час як джерел може бути багато (з'єднання типу один - багато). Використовуючи різні порти, можна створювати різні конфігурації. &lt;br /&gt;
Такий тип сервера дозволяє створювати транслятор для будь-якого визначеного користувачем сервісу, що базується на TCP, здійснювати контроль доступу до цього сервісу, збір статистики щодо його використання. &lt;br /&gt;
&lt;br /&gt;
== '''Порівняльні характеристики''' ==&lt;br /&gt;
 &lt;br /&gt;
Нижче наведені основні переваги і недоліки пакетних фільтрів і серверів прикладного рівня відносно один одного. &lt;br /&gt;
&lt;br /&gt;
До позитивних якостей пакетних фільтрів слід віднести наступні: &lt;br /&gt;
&lt;br /&gt;
• відносно невисока вартість &lt;br /&gt;
&lt;br /&gt;
• гнучкість у визначенні правил фільтрації &lt;br /&gt;
&lt;br /&gt;
• невелика затримка при проходженні пакетів &lt;br /&gt;
&lt;br /&gt;
Недоліки у даного типу брандмауерів наступні: &lt;br /&gt;
&lt;br /&gt;
• локальну мережу видно (маршрут) з INTERNET &lt;br /&gt;
&lt;br /&gt;
• правила фільтрації пакетів важкі в описі, потрібні дуже хороші знання технологій TCP і UDP &lt;br /&gt;
&lt;br /&gt;
• при порушенні працездатності брандмауера всі комп'ютери за ним стають повністю незахищеними або недоступними &lt;br /&gt;
&lt;br /&gt;
• аутентифікацію з використанням IP-адреси можна обдурити використанням IP-спуфінга (атакуюча система видає себе за іншу, використовуючи її IP-адреса) &lt;br /&gt;
&lt;br /&gt;
• відсутність аутентифікації на користувацькому рівні &lt;br /&gt;
&lt;br /&gt;
До переваг серверів прикладного рівня слід віднести наступні: &lt;br /&gt;
&lt;br /&gt;
• локальна мережа невидима з INTERNET &lt;br /&gt;
&lt;br /&gt;
• при порушенні працездатності брандмауера пакети перестають проходити через брандмауер, тим самим &lt;br /&gt;
не виникає загрози для захищеності ним машин &lt;br /&gt;
&lt;br /&gt;
• захист на рівні додатків дозволяє здійснювати велику кількість додаткових перевірок, знижуючи тим самим можливість злому з використанням дір у програмному забезпеченні &lt;br /&gt;
&lt;br /&gt;
• аутентифікація на призначеному для користувача рівні може бути реалізована системою негайного попередження про спробу злому. &lt;br /&gt;
&lt;br /&gt;
Недоліками цього типу є: &lt;br /&gt;
&lt;br /&gt;
• вища, ніж для пакетних фільтрів вартість; &lt;br /&gt;
&lt;br /&gt;
• неможливість використання протоколів RPC і UDP; &lt;br /&gt;
&lt;br /&gt;
• продуктивність нижче, ніж для пакетних фільтрів. &lt;br /&gt;
&lt;br /&gt;
== '''Віртуальні мережі''' ==&lt;br /&gt;
 &lt;br /&gt;
Ряд брандмауерів дозволяє також організовувати віртуальні корпоративні мережі (Virtual Private Network), тобто об'єднати декількох локальних мереж, включених в INTERNET в одну віртуальну мережу. VPN дозволяють організувати прозоре для користувачів підключення локальних мереж, зберігаючи секретність і цілісність інформації, що передається за допомогою шифрування. При цьому при передачі по INTERNET шифруються не тільки дані користувача, але і мережева інформація - мережеві адреси, номери портів і т.д. &lt;br /&gt;
&lt;br /&gt;
== '''Схеми підключення''' ==&lt;br /&gt;
 &lt;br /&gt;
Для підключення брандмауерів використовуються різні схеми. Брандмауер може використовуватися як зовнішній роутер, використовуючи підтримувані типи пристроїв для підключення до зовнішньої мережі (див. рис. 1). Іноді використовується схема, зображена на рис 2, однак нею слід користуватися тільки в крайньому випадку, оскільки потрібно дуже обережна настройка роутерів і невеликі помилки можуть утворити серйозні діри в захисті. &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Якщо брандмауер може підтримувати два інтерфейсу Ethernet (так званий dual-homed брандмауер), то &lt;br /&gt;
найчастіше підключення здійснюється через зовнішній маршрутизатор (див рис. 3). &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic3.jpg]]&lt;br /&gt;
&lt;br /&gt;
При цьому між зовнішнім роутером і брандмауером є тільки один шлях, яким іде весь трафік. Зазвичай роутер налаштовується таким чином, що брандмауер є єдиною видимою зовні машиною. Ця схема є найкращою з точки зору безпеки і надійності захисту. &lt;br /&gt;
Інша схема представлена на рис. 4. &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic4.jpg]]&lt;br /&gt;
&lt;br /&gt;
При цьому брандмауером захищається тільки одна під мережа з декількох вихідних з роутера. У незахищеній брандмауером області часто мають у своєму розпорядженні сервери, які повинні бути видимі зовні (WWW, FTP і т.д.). Деякі брандмауери пропонують розмістити ці сервери на цьому самому - рішенні, далеко не краще з точки зору завантаження машини та безпеки самого брандмауера &lt;br /&gt;
&lt;br /&gt;
Існують рішення (див рис. 5), які дозволяють організувати для серверів, які повинні бути видимі зовні, третю мережу; це дозволяє забезпечити контроль за доступом до них, зберігаючи в той же час необхідний рівень захисту машин в основній мережі. &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic5.jpg]]&lt;br /&gt;
&lt;br /&gt;
При цьому досить багато уваги приділяється тому, щоб користувачі внутрішньої мережі не могли випадково чи навмисно відкрити дірку в локальну мережу через ці сервера. Для підвищення рівня захищеності можливо використовувати в одній мережі кілька брандмауерів, що стоять один за одним. &lt;br /&gt;
&lt;br /&gt;
== '''Адміністрування''' ==&lt;br /&gt;
 &lt;br /&gt;
Легкість адміністрування є одним з ключових аспектів у створенні ефективної і надійної системи захисту. Помилки при визначенні правил доступу можуть утворити дірку, через яку може бути зламана система. Тому в більшості брандмауерів реалізовані сервісні утиліти, що полегшують введення, видалення, перегляд списку правил. Наявність цих утиліт дозволяє також проводити перевірки на синтаксичні або логічні помилки при введенні або редагування правил. Як правило, ці утиліти дозволяють переглядати інформацію, згруповану по якимось критеріям - наприклад, все що відноситься до конкретного користувача або сервісу. &lt;br /&gt;
&lt;br /&gt;
== '''Системи збору статистики та попередження про атаку''' ==&lt;br /&gt;
 &lt;br /&gt;
Ще одним важливим компонентом брандмауера є система збору статистики і попередження про атаку. Інформація про всі події - відмовах, вхідних, вихідних з'єднаннях, кількість переданих байт, використовуваних сервісах, часу з'єднання і т.д. - накопичується у файлах статистики. Багато брандмауерів дозволяють гнучко визначати підлягають протоколюванню події, описати дії брандмауера при атаках або спробах несанкціонованого доступу - це може бути повідомлення на консоль, поштове послання адміністратору системи і т.д. Негайне виведення повідомлення про спробу злому на екран консолі або адміністратора може допомогти, якщо спроба виявилася успішною і атакуючий вже проник в систему. До складу багатьох брандмауерів входять генератори звітів, які слугують для обробки статистики. Вони дозволяють зібрати статистику по використанню ресурсів конкретними користувачами, з використанням сервісів, відмов, джерел, з яких проводилися спроби несанкціонованого доступу і т.д. &lt;br /&gt;
&lt;br /&gt;
== '''Аутентифікація''' ==&lt;br /&gt;
 &lt;br /&gt;
Аутентифікація є одним з найважливіших компонентів брандмауерів. Перш ніж користувачеві буде надано право скористатися тим чи іншим сервісом, необхідно переконатися, що він дійсно той, за кого він себе видає (передбачається, що цей сервіс для даного користувача дозволений: процес визначення, які сервіси дозволені називається авторизацією. Авторизація звичайно розглядається в контексті аутентифікації - як тільки користувач аутентифікований, для нього визначаються дозволені йому сервіси). При отриманні запиту на використання сервісу від імені будь-якого користувача, брандмауер перевіряє, який спосіб аутентифікації визначений для даного користувача і передає управління сервером аутентифікації. Після отримання позитивної відповіді від сервера аутентифікації брандмауер утворює запитуване користувачем з'єднання. &lt;br /&gt;
&lt;br /&gt;
Як правило, використовується принцип, що отримав назву &amp;quot;що він знає&amp;quot; - тобто користувач знає якесь секретне слово, яке він посилає серверу аутентифікації у відповідь на його запит. &lt;br /&gt;
&lt;br /&gt;
Однією зі схем аутентифікації є використання стандартних UNIX паролів. Ця схема є найбільш вразливою з точки зору безпеки - пароль може бути перехоплений і використаний іншою особою. &lt;br /&gt;
&lt;br /&gt;
Найчастіше використовуються схеми з використанням одноразових паролів. Навіть будучи перехоплених, цей пароль буде марний при наступній реєстрації, а отримати такий пароль з попереднього є вкрай важким завданням. Для генерації одноразових паролів використовуються як програмні, так і апаратні генератори - останні являють собою пристрої, що вставляються в слот комп'ютера. Знання секретного слова необхідно користувачу для приведення цього пристрою в дію. Ряд брандмауерів підтримують Kerberos - одна з найбільш поширених методів аутентифікації. Деякі схеми вимагають зміни клієнтського програмного забезпечення - крок, який далеко не завжди прийнятний. Як правило, всі комерційні брандмауери підтримують декілька різних схем, дозволяючи адміністратору зробити вибір найбільш прийнятною для своїх умов.&lt;br /&gt;
&lt;br /&gt;
== '''Від чого не може захистити брандмауер?''' ==&lt;br /&gt;
&lt;br /&gt;
'''Віруси, що поширюються електронною поштою'''&lt;br /&gt;
&lt;br /&gt;
Віруси, що поширюються електронною поштою, вкладають до повідомлень електронної пошти. Брандмауер не може визначити вміст електронного повідомлення, тому не захищає від таких типів вірусів. Слід використовувати антивірусну програму для сканування та видалення підозрілих вкладень електронної пошти перед відкриттям. Навіть якщо на комп’ютері інстальовано антивірусну програму, не слід відкривати вкладення електронної пошти, якщо є сумніви щодо їх безпечності. Для отримання додаткових відомостей див. Уникнення вірусів в електронній пошті.&lt;br /&gt;
&lt;br /&gt;
'''Фішингове шахрайство'''&lt;br /&gt;
&lt;br /&gt;
Фішинг — це спосіб ошукання користувачів комп’ютерів з метою отримання приватної або фінансової інформації, наприклад, пароля банківського рахунку. Зазвичай фішингове шахрайство розпочинається з повідомлення електронної пошти, яке схоже на повідомлення від надійного джерела, однак насправді передає інформацію про користувача шахрайським веб-сайтам. Брандмауери не можуть визначити вміст електронного повідомлення, тому не захищають від таких атак. Для отримання додаткових відомостей див. Фішинговий фільтр: запитання й відповіді.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Спеціалізовані пристрої ==&lt;br /&gt;
* [http://vantronix.com/products/vtfw/zl1/ .vantronix | Firewall ZL1]&lt;br /&gt;
* [http://www.cisco.com/en/US/products/hw/vpndevc/ps2030/index.html Cisco PIX] та [http://www.cisco.com/en/US/products/ps6120/index.html Cisco ASA]&lt;br /&gt;
* [http://www.checkpoint.com/products/firewall-1/index.html Checkpoint FireWall-1]&lt;br /&gt;
* [http://www.juniper.net/products/integrated/ Juniper Netscreen]&lt;br /&gt;
* [http://www.nokia.com/nokia/0,,76737,00.html Nokia Firewalls]&lt;br /&gt;
* [http://www.watchguard.com/products/appliances.asp WatchGuard Firebox]&lt;br /&gt;
&lt;br /&gt;
== Персональні фаєрволи ==&lt;br /&gt;
* [[Zillya Internet Security]]&amp;amp;nbsp;— [http://zillya.ua/ zillya.ua]&lt;br /&gt;
* [[Outpost Firewall]]&amp;amp;nbsp;— [http://www.agnitum.ru/ Agnitum Outpost]&lt;br /&gt;
* [[KIS]] -[http://kaspersky.ru/kaspersky_internet_security Kaspersky Internet Security 6.0]&lt;br /&gt;
* [http://www.jetico.com/jpfirewall.htm Jetico Personal Firewall]&lt;br /&gt;
* [http://www.symantec.com/home_homeoffice/products/overview.jsp?pcid=is&amp;amp;pvid=npf2006 Norton Personal Firewall 2006]&lt;br /&gt;
* [http://www.mcafee.ru/products/homepc/firewall.html McAfee Firewall]&lt;br /&gt;
* [http://www.zonelabs.com/store/application?namespace=zls_catalog&amp;amp;origin=global.jsp&amp;amp;event=link.catalogHome&amp;amp;dc=12bms&amp;amp;ctry=US&amp;amp;lang=en&amp;amp;lid=nav_ho Zone Alarm]&lt;br /&gt;
* [http://www.kerio.com/kwf_home.html Kerio WinRoute Firewall]&lt;br /&gt;
* [http://personalfirewall.comodo.com/ Comodo Personal Firewall]&lt;br /&gt;
* [http://shop.ca.com/firewall/personal_firewall.aspx CA Personal Firewall]&lt;br /&gt;
* [http://www.softperfect.com/products/firewall/ SoftPerfect Personal Firewall]&lt;br /&gt;
&lt;br /&gt;
== Програмне забезпечення ==&lt;br /&gt;
* [http://wipfw.sourceforge.net/ WIPFW]&lt;br /&gt;
* [[netfilter]] [http://www.netfilter.org]&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%91%D1%80%D0%B0%D0%BD%D0%B4%D0%BC%D0%B0%D1%83%D0%B5%D1%80_(FireWall)</id>
		<title>Брандмауер (FireWall)</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%91%D1%80%D0%B0%D0%BD%D0%B4%D0%BC%D0%B0%D1%83%D0%B5%D1%80_(FireWall)"/>
				<updated>2010-10-05T07:23:20Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Брандмауер''' ==&lt;br /&gt;
&lt;br /&gt;
'''Брандмауер''' - це система або комбінація систем, що дозволяють розділити мережу на дві або більше частин і реалізувати набір правил, що визначають умови проходження пакетів з однієї частини в іншу (див. рис.1). Як правило, ця межа проводиться між локальною мережею підприємства та INTERNET, хоча її можна провести і всередині локальної мережі підприємства. Брандмауер таким чином пропускає через себе весь трафік. Для кожного пакету, що проходить брандмауер приймає рішення пропускати його або відкинути. Для того щоб брандмауер міг приймати ці рішення, йому необхідно визначити набір правил. Про те, як ці правила описуються і які параметри використовуються при їх описі мова піде нижче.&lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Як правило, брандмауери функціонують на який-небудь UNIX платформі - найчастіше це BSDI, SunOS, AIX, IRIX і т.д., рідше - DOS, VMS, WNT, Windows NT. З апаратних платформ зустрічаються INTEL, Sun SPARC, RS6000, Alpha, HP PA-RISC, сімейство RISC процесорів R4400-R5000. Крім Ethernet, багато брандмауерів підтримують FDDI, Token Ring, 100Base-T, 100VG-AnyLan, різні серійні пристрої. Вимоги до оперативної пам'яті та обсягу жорсткого диска залежать від кількості машин, що захищаєть сегменті мережі, але найчастіше рекомендується мати не менше 32Мб ОЗУ і 500 Мб на жорсткому диску.&lt;br /&gt;
&lt;br /&gt;
Як правило, до операційної системи, під управлінням якої працює брандмауер вносяться зміни, мета яких - підвищення захисту самого брандмауера. Ці зміни зачіпають як ядро ОС, так і відповідні файли конфігурації. На самому брандмауері не дозволяється мати рахунків користувачів (а значить і потенційних дірок), лише рахунок адміністратора. Деякі брандмауери працюють тільки в одно-користувацькому режимі. Багато брандмауерів мають систему перевірки цілісності програмних кодів. При цьому контрольні суми програмних кодів зберігаються в захищеному місці і порівнюються при старті програми, щоб уникнути підміни програмного забезпечення.&lt;br /&gt;
&lt;br /&gt;
== Функції ==&lt;br /&gt;
Фаєрвол може бути у вигляді окремого приладу (так званий маршрутизатор або ''роутер''), або програмного забезпечення, що встановлюється на персональний комп'ютер чи проксі-сервер. Простий та дешевий фаєрвол може не мати такої гнучкої системи налаштувань правил фільтрації пакетів та ''трансляції'' адрес вхідного та вихідного трафіку (функція ''редиректу'').&lt;br /&gt;
&lt;br /&gt;
В залежності від активних з'єднань, що відслідковуються, фаєрволи розділяють на:&lt;br /&gt;
&lt;br /&gt;
* ''stateless'' (проста фільтрація), які не відслідковують поточні з'єднання (наприклад TCP), а фільтрують потік даних виключно на основі статичних правил;&lt;br /&gt;
* ''stateful'' (фільтрація з урахуванням контексту), з відслідковуванням поточних з'єднань та пропуском тільки таких пакетів, що задовольняють логіці й алгоритмам роботи відповідних протоколів та програм. Такі типи фаєрволів дозволяють ефективніше боротися з різноманітними DoS-атаками та вразливістю деяких протоколів мереж.&lt;br /&gt;
&lt;br /&gt;
== Типи фаєрволів ==&lt;br /&gt;
Для того щоб задовольнити вимогам широкого кола користувачів, існує три типи фаєрволів: мережного рівня, прикладного рівня і рівня з'єднання. Кожен з цих трьох типів використовує свій, відмінний від інших підхід до захисту мережі.&lt;br /&gt;
&lt;br /&gt;
* '''Фаєрвол мережного рівня''' представлений екрануючим маршрутизатором. Він контролює лише дані мережевого і транспортного рівнів (див.Модель OSI) службової інформації пакетів. Мінусом таких маршрутизаторів є те, що ще п'ять рівнів залишаються неконтрольованими. Нарешті, адміністратори, які працюють з екрануючими маршрутизаторами, повинні пам'ятати, що у більшості приладів, що здійснюють фільтрацію пакетів, відсутні механізми аудиту та подачі сигналу тривоги. Іншими  словами, маршрутизатори можуть піддаватися атакам і відбивати велику їх кількість, а адміністратори навіть не будуть проінформовані.&lt;br /&gt;
&lt;br /&gt;
* '''Фаєрвол прикладного рівня''' також відомий як проксі-сервер (сервер-посередник).Фаєрволи прикладного рівня встановлюють певний фізичний поділ між локальною мережею і Internet,тому вони відповідають найвищим вимогам безпеки. Проте, оскільки програма повинна аналізувати пакети і приймати рішення щодо контролю доступу до них, фаєрволи прикладного рівня неминуче зменшують продуктивність мережі, тому в якості сервера-посередника використовуються більш швидкі комп'ютери.&lt;br /&gt;
&lt;br /&gt;
* '''Фаєрвол рівня з'єднання''' схожий на фаєрвол прикладного рівня тим, що обидва вони являються серверами-посередниками. Відмінність полягає в тому, що фаєрволи прикладного рівня вимагають спеціального програмного забезпечення для кожної мережевої служби на зразок FTP або HTTP. Натомість, фаєрволи рівня з’єднання обслуговують велику кількість протоколів.&lt;br /&gt;
&lt;br /&gt;
Всі брандмауери можна розділити на три типи:&lt;br /&gt;
&lt;br /&gt;
• пакетні фільтри (packet filter)&lt;br /&gt;
&lt;br /&gt;
• сервера прикладного рівня (application gateways)&lt;br /&gt;
&lt;br /&gt;
• сервера рівня з'єднання (circuit gateways)&lt;br /&gt;
&lt;br /&gt;
Усі типи можуть одночасно зустрітися в одному брандмауері.&lt;br /&gt;
&lt;br /&gt;
== '''Пакетні фільтри''' ==&lt;br /&gt;
&lt;br /&gt;
Брандмауери з пакетними фільтрами приймають рішення про те, пропускати пакет або відкинути, переглядаючи IP-адреси, прапори або номер TCP портів в заголовку цього пакету. IP-адресу та номер порту - це інформація мережевого і транспортного рівнів відповідно, але пакетні фільтри використовують і інформацію прикладного рівня, тому що всі стандартні сервіси в TCP / IP асоціюються з певним номером порту.&lt;br /&gt;
&lt;br /&gt;
Для опису правил проходження пакетів складаються таблиці типу: &lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|Дія&lt;br /&gt;
|тип пакету&lt;br /&gt;
|адреса джер.&lt;br /&gt;
|порт джер.&lt;br /&gt;
|адреса признач.&lt;br /&gt;
|порт признач.&lt;br /&gt;
|прапори&lt;br /&gt;
|}&lt;br /&gt;
						 &lt;br /&gt;
Поле &amp;quot;дія&amp;quot; може приймати значення пропустити або відкинути. &lt;br /&gt;
&lt;br /&gt;
Тип пакета - TCP, UDP чи ICMP. &lt;br /&gt;
&lt;br /&gt;
Прапори - прапори із заголовка IP-пакета. &lt;br /&gt;
&lt;br /&gt;
Поля &amp;quot;порт джерела&amp;quot; і &amp;quot;порт призначення&amp;quot; мають сенс тільки для TCP і UDP пакетів. &lt;br /&gt;
&lt;br /&gt;
== '''Сервера прикладного рівня''' ==&lt;br /&gt;
 &lt;br /&gt;
Брандмауери з серверами прикладного рівня використовують сервера конкретних сервісів - TELNET, FTP і т.д. (proxy server), що запускаються на брандмауері і пропускають через себе весь трафік, що відноситься до даного сервісу. Таким чином, між клієнтом і сервером утворюються два з'єднання: від клієнта до брандмауера і від брандмауера до місця призначення. &lt;br /&gt;
&lt;br /&gt;
Повний набір підтримуваних серверів розрізняється для кожного конкретного брандмауера, однак найчастіше зустрічаються сервера для наступних сервісів: &lt;br /&gt;
&lt;br /&gt;
• термінали (Telnet, Rlogin) &lt;br /&gt;
&lt;br /&gt;
• передача файлів (Ftp) &lt;br /&gt;
&lt;br /&gt;
• електронна пошта (SMTP, POP3) &lt;br /&gt;
&lt;br /&gt;
• WWW (HTTP) &lt;br /&gt;
&lt;br /&gt;
• Gopher &lt;br /&gt;
&lt;br /&gt;
• Wais &lt;br /&gt;
&lt;br /&gt;
• X Window System (X11) &lt;br /&gt;
&lt;br /&gt;
• Принтер &lt;br /&gt;
&lt;br /&gt;
• Rsh &lt;br /&gt;
&lt;br /&gt;
• Finger &lt;br /&gt;
&lt;br /&gt;
• новини (NNTP) і т.д. &lt;br /&gt;
&lt;br /&gt;
Використання серверів прикладного рівня дозволяє вирішити важливе завдання - приховати від зовнішніх користувачів структуру локальної мережі, включаючи інформацію в заголовках поштових пакетів або служби доменних імен (DNS). Іншим позитивним моментом є можливість аутентифікації на користувацькому рівні (аутентифікація - процес підтвердження ідентичності якому-небудь в даному випадку це процес підтвердження, чи справді користувач є тим, за кого він себе видає). Трохи докладніше про аутентифікацію буде сказано нижче. &lt;br /&gt;
&lt;br /&gt;
При описі правил доступу використовуються такі параметри як: назва сервісу, ім'я користувача, допустимий часовий діапазон використання сервісу, комп'ютери, з яких можна користуватися сервісом, схеми аутентифікації. Сервера протоколів прикладного рівня дозволяють забезпечити найбільш високий рівень захисту - взаємодія із зовнішнім світом реалізується через невелику кількість прикладних програм, повністю контролюючих весь вхідний і вихідний трафік. &lt;br /&gt;
&lt;br /&gt;
== '''Сервера рівня з'єднання''' ==&lt;br /&gt;
 &lt;br /&gt;
Сервер рівня з'єднання являє собою транслятор TCP з'єднання. Користувач утворює з'єднання з певним портом на брандмауері, після чого останній виробляє з'єднання з місцем призначення по інший бік від брандмауера. Під час сеансу цей транслятор копіює байти в обох напрямках, діючи як дріт. &lt;br /&gt;
&lt;br /&gt;
Як правило, пункт призначення задається заздалегідь, в той час як джерел може бути багато (з'єднання типу один - багато). Використовуючи різні порти, можна створювати різні конфігурації. &lt;br /&gt;
Такий тип сервера дозволяє створювати транслятор для будь-якого визначеного користувачем сервісу, що базується на TCP, здійснювати контроль доступу до цього сервісу, збір статистики щодо його використання. &lt;br /&gt;
&lt;br /&gt;
== '''Порівняльні характеристики''' ==&lt;br /&gt;
 &lt;br /&gt;
Нижче наведені основні переваги і недоліки пакетних фільтрів і серверів прикладного рівня відносно один одного. &lt;br /&gt;
&lt;br /&gt;
До позитивних якостей пакетних фільтрів слід віднести наступні: &lt;br /&gt;
&lt;br /&gt;
• відносно невисока вартість &lt;br /&gt;
&lt;br /&gt;
• гнучкість у визначенні правил фільтрації &lt;br /&gt;
&lt;br /&gt;
• невелика затримка при проходженні пакетів &lt;br /&gt;
&lt;br /&gt;
Недоліки у даного типу брандмауерів наступні: &lt;br /&gt;
&lt;br /&gt;
• локальну мережу видно (маршрут) з INTERNET &lt;br /&gt;
&lt;br /&gt;
• правила фільтрації пакетів важкі в описі, потрібні дуже хороші знання технологій TCP і UDP &lt;br /&gt;
&lt;br /&gt;
• при порушенні працездатності брандмауера всі комп'ютери за ним стають повністю незахищеними або недоступними &lt;br /&gt;
&lt;br /&gt;
• аутентифікацію з використанням IP-адреси можна обдурити використанням IP-спуфінга (атакуюча система видає себе за іншу, використовуючи її IP-адреса) &lt;br /&gt;
&lt;br /&gt;
• відсутність аутентифікації на користувацькому рівні &lt;br /&gt;
&lt;br /&gt;
До переваг серверів прикладного рівня слід віднести наступні: &lt;br /&gt;
&lt;br /&gt;
• локальна мережа невидима з INTERNET &lt;br /&gt;
&lt;br /&gt;
• при порушенні працездатності брандмауера пакети перестають проходити через брандмауер, тим самим &lt;br /&gt;
не виникає загрози для захищеності ним машин &lt;br /&gt;
&lt;br /&gt;
• захист на рівні додатків дозволяє здійснювати велику кількість додаткових перевірок, знижуючи тим самим можливість злому з використанням дір у програмному забезпеченні &lt;br /&gt;
&lt;br /&gt;
• аутентифікація на призначеному для користувача рівні може бути реалізована системою негайного попередження про спробу злому. &lt;br /&gt;
&lt;br /&gt;
Недоліками цього типу є: &lt;br /&gt;
&lt;br /&gt;
• вища, ніж для пакетних фільтрів вартість; &lt;br /&gt;
&lt;br /&gt;
• неможливість використання протоколів RPC і UDP; &lt;br /&gt;
&lt;br /&gt;
• продуктивність нижче, ніж для пакетних фільтрів. &lt;br /&gt;
&lt;br /&gt;
== '''Віртуальні мережі''' ==&lt;br /&gt;
 &lt;br /&gt;
Ряд брандмауерів дозволяє також організовувати віртуальні корпоративні мережі (Virtual Private Network), тобто об'єднати декількох локальних мереж, включених в INTERNET в одну віртуальну мережу. VPN дозволяють організувати прозоре для користувачів підключення локальних мереж, зберігаючи секретність і цілісність інформації, що передається за допомогою шифрування. При цьому при передачі по INTERNET шифруються не тільки дані користувача, але і мережева інформація - мережеві адреси, номери портів і т.д. &lt;br /&gt;
&lt;br /&gt;
== '''Схеми підключення''' ==&lt;br /&gt;
 &lt;br /&gt;
Для підключення брандмауерів використовуються різні схеми. Брандмауер може використовуватися як зовнішній роутер, використовуючи підтримувані типи пристроїв для підключення до зовнішньої мережі (див. рис. 1). Іноді використовується схема, зображена на рис 2, однак нею слід користуватися тільки в крайньому випадку, оскільки потрібно дуже обережна настройка роутерів і невеликі помилки можуть утворити серйозні діри в захисті. &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Якщо брандмауер може підтримувати два інтерфейсу Ethernet (так званий dual-homed брандмауер), то &lt;br /&gt;
найчастіше підключення здійснюється через зовнішній маршрутизатор (див рис. 3). &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic3.jpg]]&lt;br /&gt;
&lt;br /&gt;
При цьому між зовнішнім роутером і брандмауером є тільки один шлях, яким іде весь трафік. Зазвичай роутер налаштовується таким чином, що брандмауер є єдиною видимою зовні машиною. Ця схема є найкращою з точки зору безпеки і надійності захисту. &lt;br /&gt;
Інша схема представлена на рис. 4. &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic4.jpg]]&lt;br /&gt;
&lt;br /&gt;
При цьому брандмауером захищається тільки одна під мережа з декількох вихідних з роутера. У незахищеній брандмауером області часто мають у своєму розпорядженні сервери, які повинні бути видимі зовні (WWW, FTP і т.д.). Деякі брандмауери пропонують розмістити ці сервери на цьому самому - рішенні, далеко не краще з точки зору завантаження машини та безпеки самого брандмауера &lt;br /&gt;
&lt;br /&gt;
Існують рішення (див рис. 5), які дозволяють організувати для серверів, які повинні бути видимі зовні, третю мережу; це дозволяє забезпечити контроль за доступом до них, зберігаючи в той же час необхідний рівень захисту машин в основній мережі. &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic5.jpg]]&lt;br /&gt;
&lt;br /&gt;
При цьому досить багато уваги приділяється тому, щоб користувачі внутрішньої мережі не могли випадково чи навмисно відкрити дірку в локальну мережу через ці сервера. Для підвищення рівня захищеності можливо використовувати в одній мережі кілька брандмауерів, що стоять один за одним. &lt;br /&gt;
&lt;br /&gt;
== '''Адміністрування''' ==&lt;br /&gt;
 &lt;br /&gt;
Легкість адміністрування є одним з ключових аспектів у створенні ефективної і надійної системи захисту. Помилки при визначенні правил доступу можуть утворити дірку, через яку може бути зламана система. Тому в більшості брандмауерів реалізовані сервісні утиліти, що полегшують введення, видалення, перегляд списку правил. Наявність цих утиліт дозволяє також проводити перевірки на синтаксичні або логічні помилки при введенні або редагування правил. Як правило, ці утиліти дозволяють переглядати інформацію, згруповану по якимось критеріям - наприклад, все що відноситься до конкретного користувача або сервісу. &lt;br /&gt;
&lt;br /&gt;
== '''Системи збору статистики та попередження про атаку''' ==&lt;br /&gt;
 &lt;br /&gt;
Ще одним важливим компонентом брандмауера є система збору статистики і попередження про атаку. Інформація про всі події - відмовах, вхідних, вихідних з'єднаннях, кількість переданих байт, використовуваних сервісах, часу з'єднання і т.д. - накопичується у файлах статистики. Багато брандмауерів дозволяють гнучко визначати підлягають протоколюванню події, описати дії брандмауера при атаках або спробах несанкціонованого доступу - це може бути повідомлення на консоль, поштове послання адміністратору системи і т.д. Негайне виведення повідомлення про спробу злому на екран консолі або адміністратора може допомогти, якщо спроба виявилася успішною і атакуючий вже проник в систему. До складу багатьох брандмауерів входять генератори звітів, які слугують для обробки статистики. Вони дозволяють зібрати статистику по використанню ресурсів конкретними користувачами, з використанням сервісів, відмов, джерел, з яких проводилися спроби несанкціонованого доступу і т.д. &lt;br /&gt;
&lt;br /&gt;
== '''Аутентифікація''' ==&lt;br /&gt;
 &lt;br /&gt;
Аутентифікація є одним з найважливіших компонентів брандмауерів. Перш ніж користувачеві буде надано право скористатися тим чи іншим сервісом, необхідно переконатися, що він дійсно той, за кого він себе видає (передбачається, що цей сервіс для даного користувача дозволений: процес визначення, які сервіси дозволені називається авторизацією. Авторизація звичайно розглядається в контексті аутентифікації - як тільки користувач аутентифікований, для нього визначаються дозволені йому сервіси). При отриманні запиту на використання сервісу від імені будь-якого користувача, брандмауер перевіряє, який спосіб аутентифікації визначений для даного користувача і передає управління сервером аутентифікації. Після отримання позитивної відповіді від сервера аутентифікації брандмауер утворює запитуване користувачем з'єднання. &lt;br /&gt;
&lt;br /&gt;
Як правило, використовується принцип, що отримав назву &amp;quot;що він знає&amp;quot; - тобто користувач знає якесь секретне слово, яке він посилає серверу аутентифікації у відповідь на його запит. &lt;br /&gt;
&lt;br /&gt;
Однією зі схем аутентифікації є використання стандартних UNIX паролів. Ця схема є найбільш вразливою з точки зору безпеки - пароль може бути перехоплений і використаний іншою особою. &lt;br /&gt;
&lt;br /&gt;
Найчастіше використовуються схеми з використанням одноразових паролів. Навіть будучи перехоплених, цей пароль буде марний при наступній реєстрації, а отримати такий пароль з попереднього є вкрай важким завданням. Для генерації одноразових паролів використовуються як програмні, так і апаратні генератори - останні являють собою пристрої, що вставляються в слот комп'ютера. Знання секретного слова необхідно користувачу для приведення цього пристрою в дію. Ряд брандмауерів підтримують Kerberos - одна з найбільш поширених методів аутентифікації. Деякі схеми вимагають зміни клієнтського програмного забезпечення - крок, який далеко не завжди прийнятний. Як правило, всі комерційні брандмауери підтримують декілька різних схем, дозволяючи адміністратору зробити вибір найбільш прийнятною для своїх умов.&lt;br /&gt;
&lt;br /&gt;
== '''Від чого не може захистити брандмауер?''' ==&lt;br /&gt;
&lt;br /&gt;
'''Віруси, що поширюються електронною поштою'''&lt;br /&gt;
&lt;br /&gt;
Віруси, що поширюються електронною поштою, вкладають до повідомлень електронної пошти. Брандмауер не може визначити вміст електронного повідомлення, тому не захищає від таких типів вірусів. Слід використовувати антивірусну програму для сканування та видалення підозрілих вкладень електронної пошти перед відкриттям. Навіть якщо на комп’ютері інстальовано антивірусну програму, не слід відкривати вкладення електронної пошти, якщо є сумніви щодо їх безпечності. Для отримання додаткових відомостей див. Уникнення вірусів в електронній пошті.&lt;br /&gt;
&lt;br /&gt;
'''Фішингове шахрайство'''&lt;br /&gt;
&lt;br /&gt;
     Фішинг — це спосіб ошукання користувачів комп’ютерів з метою отримання приватної або фінансової інформації, наприклад, пароля банківського рахунку. Зазвичай фішингове шахрайство розпочинається з повідомлення електронної пошти, яке схоже на повідомлення від надійного джерела, однак насправді передає інформацію про користувача шахрайським веб-сайтам. Брандмауери не можуть визначити вміст електронного повідомлення, тому не захищають від таких атак. Для отримання додаткових відомостей див. Фішинговий фільтр: запитання й відповіді.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Спеціалізовані пристрої ==&lt;br /&gt;
* [http://vantronix.com/products/vtfw/zl1/ .vantronix | Firewall ZL1]&lt;br /&gt;
* [http://www.cisco.com/en/US/products/hw/vpndevc/ps2030/index.html Cisco PIX] та [http://www.cisco.com/en/US/products/ps6120/index.html Cisco ASA]&lt;br /&gt;
* [http://www.checkpoint.com/products/firewall-1/index.html Checkpoint FireWall-1]&lt;br /&gt;
* [http://www.juniper.net/products/integrated/ Juniper Netscreen]&lt;br /&gt;
* [http://www.nokia.com/nokia/0,,76737,00.html Nokia Firewalls]&lt;br /&gt;
* [http://www.watchguard.com/products/appliances.asp WatchGuard Firebox]&lt;br /&gt;
&lt;br /&gt;
== Персональні фаєрволи ==&lt;br /&gt;
* [[Zillya Internet Security]]&amp;amp;nbsp;— [http://zillya.ua/ zillya.ua]&lt;br /&gt;
* [[Outpost Firewall]]&amp;amp;nbsp;— [http://www.agnitum.ru/ Agnitum Outpost]&lt;br /&gt;
* [[KIS]] -[http://kaspersky.ru/kaspersky_internet_security Kaspersky Internet Security 6.0]&lt;br /&gt;
* [http://www.jetico.com/jpfirewall.htm Jetico Personal Firewall]&lt;br /&gt;
* [http://www.symantec.com/home_homeoffice/products/overview.jsp?pcid=is&amp;amp;pvid=npf2006 Norton Personal Firewall 2006]&lt;br /&gt;
* [http://www.mcafee.ru/products/homepc/firewall.html McAfee Firewall]&lt;br /&gt;
* [http://www.zonelabs.com/store/application?namespace=zls_catalog&amp;amp;origin=global.jsp&amp;amp;event=link.catalogHome&amp;amp;dc=12bms&amp;amp;ctry=US&amp;amp;lang=en&amp;amp;lid=nav_ho Zone Alarm]&lt;br /&gt;
* [http://www.kerio.com/kwf_home.html Kerio WinRoute Firewall]&lt;br /&gt;
* [http://personalfirewall.comodo.com/ Comodo Personal Firewall]&lt;br /&gt;
* [http://shop.ca.com/firewall/personal_firewall.aspx CA Personal Firewall]&lt;br /&gt;
* [http://www.softperfect.com/products/firewall/ SoftPerfect Personal Firewall]&lt;br /&gt;
&lt;br /&gt;
== Програмне забезпечення ==&lt;br /&gt;
* [http://wipfw.sourceforge.net/ WIPFW]&lt;br /&gt;
* [[netfilter]] [http://www.netfilter.org]&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%91%D1%80%D0%B0%D0%BD%D0%B4%D0%BC%D0%B0%D1%83%D0%B5%D1%80_(FireWall)</id>
		<title>Брандмауер (FireWall)</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%91%D1%80%D0%B0%D0%BD%D0%B4%D0%BC%D0%B0%D1%83%D0%B5%D1%80_(FireWall)"/>
				<updated>2010-10-05T07:20:31Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Брандмауер''' ==&lt;br /&gt;
&lt;br /&gt;
'''Брандмауер''' - це система або комбінація систем, що дозволяють розділити мережу на дві або більше частин і реалізувати набір правил, що визначають умови проходження пакетів з однієї частини в іншу (див. рис.1). Як правило, ця межа проводиться між локальною мережею підприємства та INTERNET, хоча її можна провести і всередині локальної мережі підприємства. Брандмауер таким чином пропускає через себе весь трафік. Для кожного пакету, що проходить брандмауер приймає рішення пропускати його або відкинути. Для того щоб брандмауер міг приймати ці рішення, йому необхідно визначити набір правил. Про те, як ці правила описуються і які параметри використовуються при їх описі мова піде нижче.&lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Як правило, брандмауери функціонують на який-небудь UNIX платформі - найчастіше це BSDI, SunOS, AIX, IRIX і т.д., рідше - DOS, VMS, WNT, Windows NT. З апаратних платформ зустрічаються INTEL, Sun SPARC, RS6000, Alpha, HP PA-RISC, сімейство RISC процесорів R4400-R5000. Крім Ethernet, багато брандмауерів підтримують FDDI, Token Ring, 100Base-T, 100VG-AnyLan, різні серійні пристрої. Вимоги до оперативної пам'яті та обсягу жорсткого диска залежать від кількості машин, що захищаєть сегменті мережі, але найчастіше рекомендується мати не менше 32Мб ОЗУ і 500 Мб на жорсткому диску.&lt;br /&gt;
&lt;br /&gt;
Як правило, до операційної системи, під управлінням якої працює брандмауер вносяться зміни, мета яких - підвищення захисту самого брандмауера. Ці зміни зачіпають як ядро ОС, так і відповідні файли конфігурації. На самому брандмауері не дозволяється мати рахунків користувачів (а значить і потенційних дірок), лише рахунок адміністратора. Деякі брандмауери працюють тільки в одно-користувацькому режимі. Багато брандмауерів мають систему перевірки цілісності програмних кодів. При цьому контрольні суми програмних кодів зберігаються в захищеному місці і порівнюються при старті програми, щоб уникнути підміни програмного забезпечення.&lt;br /&gt;
&lt;br /&gt;
== Функції ==&lt;br /&gt;
Фаєрвол може бути у вигляді окремого приладу (так званий маршрутизатор або ''роутер''), або програмного забезпечення, що встановлюється на персональний комп'ютер чи проксі-сервер. Простий та дешевий фаєрвол може не мати такої гнучкої системи налаштувань правил фільтрації пакетів та ''трансляції'' адрес вхідного та вихідного трафіку (функція ''редиректу'').&lt;br /&gt;
&lt;br /&gt;
В залежності від активних з'єднань, що відслідковуються, фаєрволи розділяють на:&lt;br /&gt;
&lt;br /&gt;
* ''stateless'' (проста фільтрація), які не відслідковують поточні з'єднання (наприклад TCP), а фільтрують потік даних виключно на основі статичних правил;&lt;br /&gt;
* ''stateful'' (фільтрація з урахуванням контексту), з відслідковуванням поточних з'єднань та пропуском тільки таких пакетів, що задовольняють логіці й алгоритмам роботи відповідних протоколів та програм. Такі типи фаєрволів дозволяють ефективніше боротися з різноманітними DoS-атаками та вразливістю деяких протоколів мереж.&lt;br /&gt;
&lt;br /&gt;
== Типи фаєрволів ==&lt;br /&gt;
Для того щоб задовольнити вимогам широкого кола користувачів, існує три типи фаєрволів: мережного рівня, прикладного рівня і рівня з'єднання. Кожен з цих трьох типів використовує свій, відмінний від інших підхід до захисту мережі.&lt;br /&gt;
&lt;br /&gt;
* '''Фаєрвол мережного рівня''' представлений екрануючим маршрутизатором. Він контролює лише дані мережевого і транспортного рівнів (див.Модель OSI) службової інформації пакетів. Мінусом таких маршрутизаторів є те, що ще п'ять рівнів залишаються неконтрольованими. Нарешті, адміністратори, які працюють з екрануючими маршрутизаторами, повинні пам'ятати, що у більшості приладів, що здійснюють фільтрацію пакетів, відсутні механізми аудиту та подачі сигналу тривоги. Іншими  словами, маршрутизатори можуть піддаватися атакам і відбивати велику їх кількість, а адміністратори навіть не будуть проінформовані.&lt;br /&gt;
&lt;br /&gt;
* '''Фаєрвол прикладного рівня''' також відомий як проксі-сервер (сервер-посередник).Фаєрволи прикладного рівня встановлюють певний фізичний поділ між локальною мережею і Internet,тому вони відповідають найвищим вимогам безпеки. Проте, оскільки програма повинна аналізувати пакети і приймати рішення щодо контролю доступу до них, фаєрволи прикладного рівня неминуче зменшують продуктивність мережі, тому в якості сервера-посередника використовуються більш швидкі комп'ютери.&lt;br /&gt;
&lt;br /&gt;
* '''Фаєрвол рівня з'єднання''' схожий на фаєрвол прикладного рівня тим, що обидва вони являються серверами-посередниками. Відмінність полягає в тому, що фаєрволи прикладного рівня вимагають спеціального програмного забезпечення для кожної мережевої служби на зразок FTP або HTTP. Натомість, фаєрволи рівня з’єднання обслуговують велику кількість протоколів.&lt;br /&gt;
&lt;br /&gt;
Всі брандмауери можна розділити на три типи:&lt;br /&gt;
&lt;br /&gt;
• пакетні фільтри (packet filter)&lt;br /&gt;
&lt;br /&gt;
• сервера прикладного рівня (application gateways)&lt;br /&gt;
&lt;br /&gt;
• сервера рівня з'єднання (circuit gateways)&lt;br /&gt;
&lt;br /&gt;
Усі типи можуть одночасно зустрітися в одному брандмауері.&lt;br /&gt;
&lt;br /&gt;
== '''Пакетні фільтри''' ==&lt;br /&gt;
&lt;br /&gt;
Брандмауери з пакетними фільтрами приймають рішення про те, пропускати пакет або відкинути, переглядаючи IP-адреси, прапори або номер TCP портів в заголовку цього пакету. IP-адресу та номер порту - це інформація мережевого і транспортного рівнів відповідно, але пакетні фільтри використовують і інформацію прикладного рівня, тому що всі стандартні сервіси в TCP / IP асоціюються з певним номером порту.&lt;br /&gt;
&lt;br /&gt;
Для опису правил проходження пакетів складаються таблиці типу: &lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|Дія&lt;br /&gt;
|тип пакету&lt;br /&gt;
|адреса джер.&lt;br /&gt;
|порт джер.&lt;br /&gt;
|адреса признач.&lt;br /&gt;
|порт признач.&lt;br /&gt;
|прапори&lt;br /&gt;
|}&lt;br /&gt;
						 &lt;br /&gt;
Поле &amp;quot;дія&amp;quot; може приймати значення пропустити або відкинути. &lt;br /&gt;
&lt;br /&gt;
Тип пакета - TCP, UDP чи ICMP. &lt;br /&gt;
&lt;br /&gt;
Прапори - прапори із заголовка IP-пакета. &lt;br /&gt;
&lt;br /&gt;
Поля &amp;quot;порт джерела&amp;quot; і &amp;quot;порт призначення&amp;quot; мають сенс тільки для TCP і UDP пакетів. &lt;br /&gt;
&lt;br /&gt;
== '''Сервера прикладного рівня''' ==&lt;br /&gt;
 &lt;br /&gt;
Брандмауери з серверами прикладного рівня використовують сервера конкретних сервісів - TELNET, FTP і т.д. (proxy server), що запускаються на брандмауері і пропускають через себе весь трафік, що відноситься до даного сервісу. Таким чином, між клієнтом і сервером утворюються два з'єднання: від клієнта до брандмауера і від брандмауера до місця призначення. &lt;br /&gt;
&lt;br /&gt;
Повний набір підтримуваних серверів розрізняється для кожного конкретного брандмауера, однак найчастіше зустрічаються сервера для наступних сервісів: &lt;br /&gt;
&lt;br /&gt;
• термінали (Telnet, Rlogin) &lt;br /&gt;
&lt;br /&gt;
• передача файлів (Ftp) &lt;br /&gt;
&lt;br /&gt;
• електронна пошта (SMTP, POP3) &lt;br /&gt;
&lt;br /&gt;
• WWW (HTTP) &lt;br /&gt;
&lt;br /&gt;
• Gopher &lt;br /&gt;
&lt;br /&gt;
• Wais &lt;br /&gt;
&lt;br /&gt;
• X Window System (X11) &lt;br /&gt;
&lt;br /&gt;
• Принтер &lt;br /&gt;
&lt;br /&gt;
• Rsh &lt;br /&gt;
&lt;br /&gt;
• Finger &lt;br /&gt;
&lt;br /&gt;
• новини (NNTP) і т.д. &lt;br /&gt;
&lt;br /&gt;
Використання серверів прикладного рівня дозволяє вирішити важливе завдання - приховати від зовнішніх користувачів структуру локальної мережі, включаючи інформацію в заголовках поштових пакетів або служби доменних імен (DNS). Іншим позитивним моментом є можливість аутентифікації на користувацькому рівні (аутентифікація - процес підтвердження ідентичності якому-небудь в даному випадку це процес підтвердження, чи справді користувач є тим, за кого він себе видає). Трохи докладніше про аутентифікацію буде сказано нижче. &lt;br /&gt;
&lt;br /&gt;
При описі правил доступу використовуються такі параметри як: назва сервісу, ім'я користувача, допустимий часовий діапазон використання сервісу, комп'ютери, з яких можна користуватися сервісом, схеми аутентифікації. Сервера протоколів прикладного рівня дозволяють забезпечити найбільш високий рівень захисту - взаємодія із зовнішнім світом реалізується через невелику кількість прикладних програм, повністю контролюючих весь вхідний і вихідний трафік. &lt;br /&gt;
&lt;br /&gt;
== '''Сервера рівня з'єднання''' ==&lt;br /&gt;
 &lt;br /&gt;
Сервер рівня з'єднання являє собою транслятор TCP з'єднання. Користувач утворює з'єднання з певним портом на брандмауері, після чого останній виробляє з'єднання з місцем призначення по інший бік від брандмауера. Під час сеансу цей транслятор копіює байти в обох напрямках, діючи як дріт. &lt;br /&gt;
&lt;br /&gt;
Як правило, пункт призначення задається заздалегідь, в той час як джерел може бути багато (з'єднання типу один - багато). Використовуючи різні порти, можна створювати різні конфігурації. &lt;br /&gt;
Такий тип сервера дозволяє створювати транслятор для будь-якого визначеного користувачем сервісу, що базується на TCP, здійснювати контроль доступу до цього сервісу, збір статистики щодо його використання. &lt;br /&gt;
&lt;br /&gt;
== '''Порівняльні характеристики''' ==&lt;br /&gt;
 &lt;br /&gt;
Нижче наведені основні переваги і недоліки пакетних фільтрів і серверів прикладного рівня відносно один одного. &lt;br /&gt;
&lt;br /&gt;
До позитивних якостей пакетних фільтрів слід віднести наступні: &lt;br /&gt;
&lt;br /&gt;
• відносно невисока вартість &lt;br /&gt;
&lt;br /&gt;
• гнучкість у визначенні правил фільтрації &lt;br /&gt;
&lt;br /&gt;
• невелика затримка при проходженні пакетів &lt;br /&gt;
&lt;br /&gt;
Недоліки у даного типу брандмауерів наступні: &lt;br /&gt;
&lt;br /&gt;
• локальну мережу видно (маршрут) з INTERNET &lt;br /&gt;
&lt;br /&gt;
• правила фільтрації пакетів важкі в описі, потрібні дуже хороші знання технологій TCP і UDP &lt;br /&gt;
&lt;br /&gt;
• при порушенні працездатності брандмауера всі комп'ютери за ним стають повністю незахищеними або недоступними &lt;br /&gt;
&lt;br /&gt;
• аутентифікацію з використанням IP-адреси можна обдурити використанням IP-спуфінга (атакуюча система видає себе за іншу, використовуючи її IP-адреса) &lt;br /&gt;
&lt;br /&gt;
• відсутність аутентифікації на користувацькому рівні &lt;br /&gt;
&lt;br /&gt;
До переваг серверів прикладного рівня слід віднести наступні: &lt;br /&gt;
&lt;br /&gt;
• локальна мережа невидима з INTERNET &lt;br /&gt;
&lt;br /&gt;
• при порушенні працездатності брандмауера пакети перестають проходити через брандмауер, тим самим &lt;br /&gt;
не виникає загрози для захищеності ним машин &lt;br /&gt;
&lt;br /&gt;
• захист на рівні додатків дозволяє здійснювати велику кількість додаткових перевірок, знижуючи тим самим можливість злому з використанням дір у програмному забезпеченні &lt;br /&gt;
&lt;br /&gt;
• аутентифікація на призначеному для користувача рівні може бути реалізована системою негайного попередження про спробу злому. &lt;br /&gt;
&lt;br /&gt;
Недоліками цього типу є: &lt;br /&gt;
&lt;br /&gt;
• вища, ніж для пакетних фільтрів вартість; &lt;br /&gt;
&lt;br /&gt;
• неможливість використання протоколів RPC і UDP; &lt;br /&gt;
&lt;br /&gt;
• продуктивність нижче, ніж для пакетних фільтрів. &lt;br /&gt;
&lt;br /&gt;
== '''Віртуальні мережі''' ==&lt;br /&gt;
 &lt;br /&gt;
Ряд брандмауерів дозволяє також організовувати віртуальні корпоративні мережі (Virtual Private Network), тобто об'єднати декількох локальних мереж, включених в INTERNET в одну віртуальну мережу. VPN дозволяють організувати прозоре для користувачів підключення локальних мереж, зберігаючи секретність і цілісність інформації, що передається за допомогою шифрування. При цьому при передачі по INTERNET шифруються не тільки дані користувача, але і мережева інформація - мережеві адреси, номери портів і т.д. &lt;br /&gt;
&lt;br /&gt;
== '''Схеми підключення''' ==&lt;br /&gt;
 &lt;br /&gt;
Для підключення брандмауерів використовуються різні схеми. Брандмауер може використовуватися як зовнішній роутер, використовуючи підтримувані типи пристроїв для підключення до зовнішньої мережі (див. рис. 1). Іноді використовується схема, зображена на рис 2, однак нею слід користуватися тільки в крайньому випадку, оскільки потрібно дуже обережна настройка роутерів і невеликі помилки можуть утворити серйозні діри в захисті. &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Якщо брандмауер може підтримувати два інтерфейсу Ethernet (так званий dual-homed брандмауер), то &lt;br /&gt;
найчастіше підключення здійснюється через зовнішній маршрутизатор (див рис. 3). &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic3.jpg]]&lt;br /&gt;
&lt;br /&gt;
При цьому між зовнішнім роутером і брандмауером є тільки один шлях, яким іде весь трафік. Зазвичай роутер налаштовується таким чином, що брандмауер є єдиною видимою зовні машиною. Ця схема є найкращою з точки зору безпеки і надійності захисту. &lt;br /&gt;
Інша схема представлена на рис. 4. &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic4.jpg]]&lt;br /&gt;
&lt;br /&gt;
При цьому брандмауером захищається тільки одна під мережа з декількох вихідних з роутера. У незахищеній брандмауером області часто мають у своєму розпорядженні сервери, які повинні бути видимі зовні (WWW, FTP і т.д.). Деякі брандмауери пропонують розмістити ці сервери на цьому самому - рішенні, далеко не краще з точки зору завантаження машини та безпеки самого брандмауера &lt;br /&gt;
&lt;br /&gt;
Існують рішення (див рис. 5), які дозволяють організувати для серверів, які повинні бути видимі зовні, третю мережу; це дозволяє забезпечити контроль за доступом до них, зберігаючи в той же час необхідний рівень захисту машин в основній мережі. &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic5.jpg]]&lt;br /&gt;
&lt;br /&gt;
При цьому досить багато уваги приділяється тому, щоб користувачі внутрішньої мережі не могли випадково чи навмисно відкрити дірку в локальну мережу через ці сервера. Для підвищення рівня захищеності можливо використовувати в одній мережі кілька брандмауерів, що стоять один за одним. &lt;br /&gt;
&lt;br /&gt;
== '''Адміністрування''' ==&lt;br /&gt;
 &lt;br /&gt;
Легкість адміністрування є одним з ключових аспектів у створенні ефективної і надійної системи захисту. Помилки при визначенні правил доступу можуть утворити дірку, через яку може бути зламана система. Тому в більшості брандмауерів реалізовані сервісні утиліти, що полегшують введення, видалення, перегляд списку правил. Наявність цих утиліт дозволяє також проводити перевірки на синтаксичні або логічні помилки при введенні або редагування правил. Як правило, ці утиліти дозволяють переглядати інформацію, згруповану по якимось критеріям - наприклад, все що відноситься до конкретного користувача або сервісу. &lt;br /&gt;
&lt;br /&gt;
== '''Системи збору статистики та попередження про атаку''' ==&lt;br /&gt;
 &lt;br /&gt;
Ще одним важливим компонентом брандмауера є система збору статистики і попередження про атаку. Інформація про всі події - відмовах, вхідних, вихідних з'єднаннях, кількість переданих байт, використовуваних сервісах, часу з'єднання і т.д. - накопичується у файлах статистики. Багато брандмауерів дозволяють гнучко визначати підлягають протоколюванню події, описати дії брандмауера при атаках або спробах несанкціонованого доступу - це може бути повідомлення на консоль, поштове послання адміністратору системи і т.д. Негайне виведення повідомлення про спробу злому на екран консолі або адміністратора може допомогти, якщо спроба виявилася успішною і атакуючий вже проник в систему. До складу багатьох брандмауерів входять генератори звітів, які слугують для обробки статистики. Вони дозволяють зібрати статистику по використанню ресурсів конкретними користувачами, з використанням сервісів, відмов, джерел, з яких проводилися спроби несанкціонованого доступу і т.д. &lt;br /&gt;
&lt;br /&gt;
== '''Аутентифікація''' ==&lt;br /&gt;
 &lt;br /&gt;
Аутентифікація є одним з найважливіших компонентів брандмауерів. Перш ніж користувачеві буде надано право скористатися тим чи іншим сервісом, необхідно переконатися, що він дійсно той, за кого він себе видає (передбачається, що цей сервіс для даного користувача дозволений: процес визначення, які сервіси дозволені називається авторизацією. Авторизація звичайно розглядається в контексті аутентифікації - як тільки користувач аутентифікований, для нього визначаються дозволені йому сервіси). При отриманні запиту на використання сервісу від імені будь-якого користувача, брандмауер перевіряє, який спосіб аутентифікації визначений для даного користувача і передає управління сервером аутентифікації. Після отримання позитивної відповіді від сервера аутентифікації брандмауер утворює запитуване користувачем з'єднання. &lt;br /&gt;
&lt;br /&gt;
Як правило, використовується принцип, що отримав назву &amp;quot;що він знає&amp;quot; - тобто користувач знає якесь секретне слово, яке він посилає серверу аутентифікації у відповідь на його запит. &lt;br /&gt;
&lt;br /&gt;
Однією зі схем аутентифікації є використання стандартних UNIX паролів. Ця схема є найбільш вразливою з точки зору безпеки - пароль може бути перехоплений і використаний іншою особою. &lt;br /&gt;
&lt;br /&gt;
Найчастіше використовуються схеми з використанням одноразових паролів. Навіть будучи перехоплених, цей пароль буде марний при наступній реєстрації, а отримати такий пароль з попереднього є вкрай важким завданням. Для генерації одноразових паролів використовуються як програмні, так і апаратні генератори - останні являють собою пристрої, що вставляються в слот комп'ютера. Знання секретного слова необхідно користувачу для приведення цього пристрою в дію. Ряд брандмауерів підтримують Kerberos - одна з найбільш поширених методів аутентифікації. Деякі схеми вимагають зміни клієнтського програмного забезпечення - крок, який далеко не завжди прийнятний. Як правило, всі комерційні брандмауери підтримують декілька різних схем, дозволяючи адміністратору зробити вибір найбільш прийнятною для своїх умов.&lt;br /&gt;
&lt;br /&gt;
== Спеціалізовані пристрої ==&lt;br /&gt;
* [http://vantronix.com/products/vtfw/zl1/ .vantronix | Firewall ZL1]{{ref-en}}&lt;br /&gt;
* [http://www.cisco.com/en/US/products/hw/vpndevc/ps2030/index.html Cisco PIX]{{ref-en}} та [http://www.cisco.com/en/US/products/ps6120/index.html Cisco ASA]{{ref-en}}&lt;br /&gt;
* [http://www.checkpoint.com/products/firewall-1/index.html Checkpoint FireWall-1]{{ref-en}}&lt;br /&gt;
* [http://www.juniper.net/products/integrated/ Juniper Netscreen]{{ref-en}}&lt;br /&gt;
* [http://www.nokia.com/nokia/0,,76737,00.html Nokia Firewalls]{{ref-en}}&lt;br /&gt;
* [http://www.watchguard.com/products/appliances.asp WatchGuard Firebox]{{ref-en}}&lt;br /&gt;
&lt;br /&gt;
== Персональні фаєрволи ==&lt;br /&gt;
* [[Zillya Internet Security]]&amp;amp;nbsp;— [http://zillya.ua/ zillya.ua]&lt;br /&gt;
* [[Outpost Firewall]]&amp;amp;nbsp;— [http://www.agnitum.ru/ Agnitum Outpost]&lt;br /&gt;
* [[KIS]] -[http://kaspersky.ru/kaspersky_internet_security Kaspersky Internet Security 6.0]&lt;br /&gt;
* [http://www.jetico.com/jpfirewall.htm Jetico Personal Firewall]{{ref-en}}&lt;br /&gt;
* [http://www.symantec.com/home_homeoffice/products/overview.jsp?pcid=is&amp;amp;pvid=npf2006 Norton Personal Firewall 2006]&lt;br /&gt;
* [http://www.mcafee.ru/products/homepc/firewall.html McAfee Firewall]&lt;br /&gt;
* [http://www.zonelabs.com/store/application?namespace=zls_catalog&amp;amp;origin=global.jsp&amp;amp;event=link.catalogHome&amp;amp;dc=12bms&amp;amp;ctry=US&amp;amp;lang=en&amp;amp;lid=nav_ho Zone Alarm]&lt;br /&gt;
* [http://www.kerio.com/kwf_home.html Kerio WinRoute Firewall]&lt;br /&gt;
* [http://personalfirewall.comodo.com/ Comodo Personal Firewall]&lt;br /&gt;
* [http://shop.ca.com/firewall/personal_firewall.aspx CA Personal Firewall]{{ref-en}}&lt;br /&gt;
* [http://www.softperfect.com/products/firewall/ SoftPerfect Personal Firewall]{{ref-en}}&lt;br /&gt;
&lt;br /&gt;
== Програмне забезпечення ==&lt;br /&gt;
* [http://wipfw.sourceforge.net/ WIPFW]{{ref-en}}&lt;br /&gt;
* [[netfilter]] [http://www.netfilter.org]{{ref-en}}&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%91%D1%80%D0%B0%D0%BD%D0%B4%D0%BC%D0%B0%D1%83%D0%B5%D1%80_(FireWall)</id>
		<title>Брандмауер (FireWall)</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%91%D1%80%D0%B0%D0%BD%D0%B4%D0%BC%D0%B0%D1%83%D0%B5%D1%80_(FireWall)"/>
				<updated>2010-10-05T07:19:28Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Брандмауер''' ==&lt;br /&gt;
&lt;br /&gt;
'''Брандмауер''' - це система або комбінація систем, що дозволяють розділити мережу на дві або більше частин і реалізувати набір правил, що визначають умови проходження пакетів з однієї частини в іншу (див. рис.1). Як правило, ця межа проводиться між локальною мережею підприємства та INTERNET, хоча її можна провести і всередині локальної мережі підприємства. Брандмауер таким чином пропускає через себе весь трафік. Для кожного пакету, що проходить брандмауер приймає рішення пропускати його або відкинути. Для того щоб брандмауер міг приймати ці рішення, йому необхідно визначити набір правил. Про те, як ці правила описуються і які параметри використовуються при їх описі мова піде нижче.&lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Як правило, брандмауери функціонують на який-небудь UNIX платформі - найчастіше це BSDI, SunOS, AIX, IRIX і т.д., рідше - DOS, VMS, WNT, Windows NT. З апаратних платформ зустрічаються INTEL, Sun SPARC, RS6000, Alpha, HP PA-RISC, сімейство RISC процесорів R4400-R5000. Крім Ethernet, багато брандмауерів підтримують FDDI, Token Ring, 100Base-T, 100VG-AnyLan, різні серійні пристрої. Вимоги до оперативної пам'яті та обсягу жорсткого диска залежать від кількості машин, що захищаєть сегменті мережі, але найчастіше рекомендується мати не менше 32Мб ОЗУ і 500 Мб на жорсткому диску.&lt;br /&gt;
&lt;br /&gt;
Як правило, до операційної системи, під управлінням якої працює брандмауер вносяться зміни, мета яких - підвищення захисту самого брандмауера. Ці зміни зачіпають як ядро ОС, так і відповідні файли конфігурації. На самому брандмауері не дозволяється мати рахунків користувачів (а значить і потенційних дірок), лише рахунок адміністратора. Деякі брандмауери працюють тільки в одно-користувацькому режимі. Багато брандмауерів мають систему перевірки цілісності програмних кодів. При цьому контрольні суми програмних кодів зберігаються в захищеному місці і порівнюються при старті програми, щоб уникнути підміни програмного забезпечення.&lt;br /&gt;
&lt;br /&gt;
== Функції ==&lt;br /&gt;
Фаєрвол може бути у вигляді окремого приладу (так званий маршрутизатор або ''роутер''), або програмного забезпечення, що встановлюється на персональний комп'ютер чи проксі-сервер. Простий та дешевий фаєрвол може не мати такої гнучкої системи налаштувань правил фільтрації пакетів та ''трансляції'' адрес вхідного та вихідного трафіку (функція ''редиректу'').&lt;br /&gt;
&lt;br /&gt;
В залежності від активних з'єднань, що відслідковуються, фаєрволи розділяють на:&lt;br /&gt;
&lt;br /&gt;
* ''stateless'' (проста фільтрація), які не відслідковують поточні з'єднання (наприклад TCP), а фільтрують потік даних виключно на основі статичних правил;&lt;br /&gt;
* ''stateful'' (фільтрація з урахуванням контексту), з відслідковуванням поточних з'єднань та пропуском тільки таких пакетів, що задовольняють логіці й алгоритмам роботи відповідних протоколів та програм. Такі типи фаєрволів дозволяють ефективніше боротися з різноманітними DoS-атаками та вразливістю деяких протоколів мереж.&lt;br /&gt;
&lt;br /&gt;
== Типи фаєрволів ==&lt;br /&gt;
Для того щоб задовольнити вимогам широкого кола користувачів, існує три типи фаєрволів: мережного рівня, прикладного рівня і рівня з'єднання. Кожен з цих трьох типів використовує свій, відмінний від інших підхід до захисту мережі.&lt;br /&gt;
&lt;br /&gt;
* '''Фаєрвол мережного рівня''' представлений екрануючим маршрутизатором. Він контролює лише дані мережевого і транспортного рівнів (див.Модель OSI) службової інформації пакетів. Мінусом таких маршрутизаторів є те, що ще п'ять рівнів залишаються неконтрольованими. Нарешті, адміністратори, які працюють з екрануючими маршрутизаторами, повинні пам'ятати, що у більшості приладів, що здійснюють фільтрацію пакетів, відсутні механізми аудиту та подачі сигналу тривоги. Іншими  словами, маршрутизатори можуть піддаватися атакам і відбивати велику їх кількість, а адміністратори навіть не будуть проінформовані.&lt;br /&gt;
&lt;br /&gt;
* '''Фаєрвол прикладного рівня''' також відомий як проксі-сервер (сервер-посередник).Фаєрволи прикладного рівня встановлюють певний фізичний поділ між локальною мережею і Internet,тому вони відповідають найвищим вимогам безпеки. Проте, оскільки програма повинна аналізувати пакети і приймати рішення щодо контролю доступу до них, фаєрволи прикладного рівня неминуче зменшують продуктивність мережі, тому в якості сервера-посередника використовуються більш швидкі комп'ютери.&lt;br /&gt;
&lt;br /&gt;
* '''Фаєрвол рівня з'єднання''' схожий на фаєрвол прикладного рівня тим, що обидва вони являються серверами-посередниками. Відмінність полягає в тому, що фаєрволи прикладного рівня вимагають спеціального програмного забезпечення для кожної мережевої служби на зразок FTP або HTTP. Натомість, фаєрволи рівня з’єднання обслуговують велику кількість протоколів.&lt;br /&gt;
&lt;br /&gt;
Всі брандмауери можна розділити на три типи:&lt;br /&gt;
&lt;br /&gt;
• пакетні фільтри (packet filter)&lt;br /&gt;
&lt;br /&gt;
• сервера прикладного рівня (application gateways)&lt;br /&gt;
&lt;br /&gt;
• сервера рівня з'єднання (circuit gateways)&lt;br /&gt;
&lt;br /&gt;
Усі типи можуть одночасно зустрітися в одному брандмауері.&lt;br /&gt;
&lt;br /&gt;
== '''Пакетні фільтри''' ==&lt;br /&gt;
&lt;br /&gt;
Брандмауери з пакетними фільтрами приймають рішення про те, пропускати пакет або відкинути, переглядаючи IP-адреси, прапори або номер TCP портів в заголовку цього пакету. IP-адресу та номер порту - це інформація мережевого і транспортного рівнів відповідно, але пакетні фільтри використовують і інформацію прикладного рівня, тому що всі стандартні сервіси в TCP / IP асоціюються з певним номером порту.&lt;br /&gt;
&lt;br /&gt;
Для опису правил проходження пакетів складаються таблиці типу: &lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;1&amp;quot;&lt;br /&gt;
|Дія&lt;br /&gt;
|тип пакету&lt;br /&gt;
|адреса джер.&lt;br /&gt;
|порт джер.&lt;br /&gt;
|адреса признач.&lt;br /&gt;
|порт признач.&lt;br /&gt;
|прапори&lt;br /&gt;
|}&lt;br /&gt;
						 &lt;br /&gt;
Поле &amp;quot;дія&amp;quot; може приймати значення пропустити або відкинути. &lt;br /&gt;
&lt;br /&gt;
Тип пакета - TCP, UDP чи ICMP. &lt;br /&gt;
&lt;br /&gt;
Прапори - прапори із заголовка IP-пакета. &lt;br /&gt;
&lt;br /&gt;
Поля &amp;quot;порт джерела&amp;quot; і &amp;quot;порт призначення&amp;quot; мають сенс тільки для TCP і UDP пакетів. &lt;br /&gt;
&lt;br /&gt;
== '''Сервера прикладного рівня''' ==&lt;br /&gt;
 &lt;br /&gt;
Брандмауери з серверами прикладного рівня використовують сервера конкретних сервісів - TELNET, FTP і т.д. (proxy server), що запускаються на брандмауері і пропускають через себе весь трафік, що відноситься до даного сервісу. Таким чином, між клієнтом і сервером утворюються два з'єднання: від клієнта до брандмауера і від брандмауера до місця призначення. &lt;br /&gt;
&lt;br /&gt;
Повний набір підтримуваних серверів розрізняється для кожного конкретного брандмауера, однак найчастіше зустрічаються сервера для наступних сервісів: &lt;br /&gt;
&lt;br /&gt;
• термінали (Telnet, Rlogin) &lt;br /&gt;
&lt;br /&gt;
• передача файлів (Ftp) &lt;br /&gt;
&lt;br /&gt;
• електронна пошта (SMTP, POP3) &lt;br /&gt;
&lt;br /&gt;
• WWW (HTTP) &lt;br /&gt;
&lt;br /&gt;
• Gopher &lt;br /&gt;
&lt;br /&gt;
• Wais &lt;br /&gt;
&lt;br /&gt;
• X Window System (X11) &lt;br /&gt;
&lt;br /&gt;
• Принтер &lt;br /&gt;
&lt;br /&gt;
• Rsh &lt;br /&gt;
&lt;br /&gt;
• Finger &lt;br /&gt;
&lt;br /&gt;
• новини (NNTP) і т.д. &lt;br /&gt;
&lt;br /&gt;
Використання серверів прикладного рівня дозволяє вирішити важливе завдання - приховати від зовнішніх користувачів структуру локальної мережі, включаючи інформацію в заголовках поштових пакетів або служби доменних імен (DNS). Іншим позитивним моментом є можливість аутентифікації на користувацькому рівні (аутентифікація - процес підтвердження ідентичності якому-небудь в даному випадку це процес підтвердження, чи справді користувач є тим, за кого він себе видає). Трохи докладніше про аутентифікацію буде сказано нижче. &lt;br /&gt;
&lt;br /&gt;
При описі правил доступу використовуються такі параметри як: назва сервісу, ім'я користувача, допустимий часовий діапазон використання сервісу, комп'ютери, з яких можна користуватися сервісом, схеми аутентифікації. Сервера протоколів прикладного рівня дозволяють забезпечити найбільш високий рівень захисту - взаємодія із зовнішнім світом реалізується через невелику кількість прикладних програм, повністю контролюючих весь вхідний і вихідний трафік. &lt;br /&gt;
&lt;br /&gt;
== '''Сервера рівня з'єднання''' ==&lt;br /&gt;
 &lt;br /&gt;
Сервер рівня з'єднання являє собою транслятор TCP з'єднання. Користувач утворює з'єднання з певним портом на брандмауері, після чого останній виробляє з'єднання з місцем призначення по інший бік від брандмауера. Під час сеансу цей транслятор копіює байти в обох напрямках, діючи як дріт. &lt;br /&gt;
&lt;br /&gt;
Як правило, пункт призначення задається заздалегідь, в той час як джерел може бути багато (з'єднання типу один - багато). Використовуючи різні порти, можна створювати різні конфігурації. &lt;br /&gt;
Такий тип сервера дозволяє створювати транслятор для будь-якого визначеного користувачем сервісу, що базується на TCP, здійснювати контроль доступу до цього сервісу, збір статистики щодо його використання. &lt;br /&gt;
&lt;br /&gt;
== '''Порівняльні характеристики''' ==&lt;br /&gt;
 &lt;br /&gt;
Нижче наведені основні переваги і недоліки пакетних фільтрів і серверів прикладного рівня відносно один одного. &lt;br /&gt;
&lt;br /&gt;
До позитивних якостей пакетних фільтрів слід віднести наступні: &lt;br /&gt;
&lt;br /&gt;
• відносно невисока вартість &lt;br /&gt;
&lt;br /&gt;
• гнучкість у визначенні правил фільтрації &lt;br /&gt;
&lt;br /&gt;
• невелика затримка при проходженні пакетів &lt;br /&gt;
&lt;br /&gt;
Недоліки у даного типу брандмауерів наступні: &lt;br /&gt;
&lt;br /&gt;
• локальну мережу видно (маршрут) з INTERNET &lt;br /&gt;
&lt;br /&gt;
• правила фільтрації пакетів важкі в описі, потрібні дуже хороші знання технологій TCP і UDP &lt;br /&gt;
&lt;br /&gt;
• при порушенні працездатності брандмауера всі комп'ютери за ним стають повністю незахищеними або недоступними &lt;br /&gt;
&lt;br /&gt;
• аутентифікацію з використанням IP-адреси можна обдурити використанням IP-спуфінга (атакуюча система видає себе за іншу, використовуючи її IP-адреса) &lt;br /&gt;
&lt;br /&gt;
• відсутність аутентифікації на користувацькому рівні &lt;br /&gt;
&lt;br /&gt;
До переваг серверів прикладного рівня слід віднести наступні: &lt;br /&gt;
&lt;br /&gt;
• локальна мережа невидима з INTERNET &lt;br /&gt;
&lt;br /&gt;
• при порушенні працездатності брандмауера пакети перестають проходити через брандмауер, тим самим &lt;br /&gt;
не виникає загрози для захищеності ним машин &lt;br /&gt;
&lt;br /&gt;
• захист на рівні додатків дозволяє здійснювати велику кількість додаткових перевірок, знижуючи тим самим можливість злому з використанням дір у програмному забезпеченні &lt;br /&gt;
&lt;br /&gt;
• аутентифікація на призначеному для користувача рівні може бути реалізована системою негайного попередження про спробу злому. &lt;br /&gt;
&lt;br /&gt;
Недоліками цього типу є: &lt;br /&gt;
&lt;br /&gt;
• вища, ніж для пакетних фільтрів вартість; &lt;br /&gt;
&lt;br /&gt;
• неможливість використання протоколів RPC і UDP; &lt;br /&gt;
&lt;br /&gt;
• продуктивність нижче, ніж для пакетних фільтрів. &lt;br /&gt;
&lt;br /&gt;
== '''Віртуальні мережі''' ==&lt;br /&gt;
 &lt;br /&gt;
Ряд брандмауерів дозволяє також організовувати віртуальні корпоративні мережі (Virtual Private Network), тобто об'єднати декількох локальних мереж, включених в INTERNET в одну віртуальну мережу. VPN дозволяють організувати прозоре для користувачів підключення локальних мереж, зберігаючи секретність і цілісність інформації, що передається за допомогою шифрування. При цьому при передачі по INTERNET шифруються не тільки дані користувача, але і мережева інформація - мережеві адреси, номери портів і т.д. &lt;br /&gt;
&lt;br /&gt;
== '''Схеми підключення''' ==&lt;br /&gt;
 &lt;br /&gt;
Для підключення брандмауерів використовуються різні схеми. Брандмауер може використовуватися як зовнішній роутер, використовуючи підтримувані типи пристроїв для підключення до зовнішньої мережі (див. рис. 1). Іноді використовується схема, зображена на рис 2, однак нею слід користуватися тільки в крайньому випадку, оскільки потрібно дуже обережна настройка роутерів і невеликі помилки можуть утворити серйозні діри в захисті. &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Якщо брандмауер може підтримувати два інтерфейсу Ethernet (так званий dual-homed брандмауер), то &lt;br /&gt;
найчастіше підключення здійснюється через зовнішній маршрутизатор (див рис. 3). &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic3.jpg]]&lt;br /&gt;
&lt;br /&gt;
При цьому між зовнішнім роутером і брандмауером є тільки один шлях, яким іде весь трафік. Зазвичай роутер налаштовується таким чином, що брандмауер є єдиною видимою зовні машиною. Ця схема є найкращою з точки зору безпеки і надійності захисту. &lt;br /&gt;
Інша схема представлена на рис. 4. &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic4.jpg]]&lt;br /&gt;
&lt;br /&gt;
При цьому брандмауером захищається тільки одна під мережа з декількох вихідних з роутера. У незахищеній брандмауером області часто мають у своєму розпорядженні сервери, які повинні бути видимі зовні (WWW, FTP і т.д.). Деякі брандмауери пропонують розмістити ці сервери на цьому самому - рішенні, далеко не краще з точки зору завантаження машини та безпеки самого брандмауера &lt;br /&gt;
&lt;br /&gt;
Існують рішення (див рис. 5), які дозволяють організувати для серверів, які повинні бути видимі зовні, третю мережу; це дозволяє забезпечити контроль за доступом до них, зберігаючи в той же час необхідний рівень захисту машин в основній мережі. &lt;br /&gt;
 &lt;br /&gt;
[[Файл:pic5.jpg]]&lt;br /&gt;
&lt;br /&gt;
При цьому досить багато уваги приділяється тому, щоб користувачі внутрішньої мережі не могли випадково чи навмисно відкрити дірку в локальну мережу через ці сервера. Для підвищення рівня захищеності можливо використовувати в одній мережі кілька брандмауерів, що стоять один за одним. &lt;br /&gt;
&lt;br /&gt;
== '''Адміністрування''' ==&lt;br /&gt;
 &lt;br /&gt;
Легкість адміністрування є одним з ключових аспектів у створенні ефективної і надійної системи захисту. Помилки при визначенні правил доступу можуть утворити дірку, через яку може бути зламана система. Тому в більшості брандмауерів реалізовані сервісні утиліти, що полегшують введення, видалення, перегляд списку правил. Наявність цих утиліт дозволяє також проводити перевірки на синтаксичні або логічні помилки при введенні або редагування правил. Як правило, ці утиліти дозволяють переглядати інформацію, згруповану по якимось критеріям - наприклад, все що відноситься до конкретного користувача або сервісу. &lt;br /&gt;
&lt;br /&gt;
== '''Системи збору статистики та попередження про атаку''' ==&lt;br /&gt;
 &lt;br /&gt;
Ще одним важливим компонентом брандмауера є система збору статистики і попередження про атаку. Інформація про всі події - відмовах, вхідних, вихідних з'єднаннях, кількість переданих байт, використовуваних сервісах, часу з'єднання і т.д. - накопичується у файлах статистики. Багато брандмауерів дозволяють гнучко визначати підлягають протоколюванню події, описати дії брандмауера при атаках або спробах несанкціонованого доступу - це може бути повідомлення на консоль, поштове послання адміністратору системи і т.д. Негайне виведення повідомлення про спробу злому на екран консолі або адміністратора може допомогти, якщо спроба виявилася успішною і атакуючий вже проник в систему. До складу багатьох брандмауерів входять генератори звітів, які слугують для обробки статистики. Вони дозволяють зібрати статистику по використанню ресурсів конкретними користувачами, з використанням сервісів, відмов, джерел, з яких проводилися спроби несанкціонованого доступу і т.д. &lt;br /&gt;
&lt;br /&gt;
== '''Аутентифікація''' ==&lt;br /&gt;
 &lt;br /&gt;
Аутентифікація є одним з найважливіших компонентів брандмауерів. Перш ніж користувачеві буде надано право скористатися тим чи іншим сервісом, необхідно переконатися, що він дійсно той, за кого він себе видає (передбачається, що цей сервіс для даного користувача дозволений: процес визначення, які сервіси дозволені називається авторизацією. Авторизація звичайно розглядається в контексті аутентифікації - як тільки користувач аутентифікований, для нього визначаються дозволені йому сервіси). При отриманні запиту на використання сервісу від імені будь-якого користувача, брандмауер перевіряє, який спосіб аутентифікації визначений для даного користувача і передає управління сервером аутентифікації. Після отримання позитивної відповіді від сервера аутентифікації брандмауер утворює запитуване користувачем з'єднання. &lt;br /&gt;
&lt;br /&gt;
Як правило, використовується принцип, що отримав назву &amp;quot;що він знає&amp;quot; - тобто користувач знає якесь секретне слово, яке він посилає серверу аутентифікації у відповідь на його запит. &lt;br /&gt;
&lt;br /&gt;
Однією зі схем аутентифікації є використання стандартних UNIX паролів. Ця схема є найбільш вразливою з точки зору безпеки - пароль може бути перехоплений і використаний іншою особою. &lt;br /&gt;
&lt;br /&gt;
Найчастіше використовуються схеми з використанням одноразових паролів. Навіть будучи перехоплених, цей пароль буде марний при наступній реєстрації, а отримати такий пароль з попереднього є вкрай важким завданням. Для генерації одноразових паролів використовуються як програмні, так і апаратні генератори - останні являють собою пристрої, що вставляються в слот комп'ютера. Знання секретного слова необхідно користувачу для приведення цього пристрою в дію. Ряд брандмауерів підтримують Kerberos - одна з найбільш поширених методів аутентифікації. Деякі схеми вимагають зміни клієнтського програмного забезпечення - крок, який далеко не завжди прийнятний. Як правило, всі комерційні брандмауери підтримують декілька різних схем, дозволяючи адміністратору зробити вибір найбільш прийнятною для своїх умов.&lt;br /&gt;
&lt;br /&gt;
--[[Користувач:Чайка Едуард|Чайка Едуард]] 21:43, 20 грудня 2009 (UTC)&lt;br /&gt;
--[[Користувач:Чайка Едуард|Чайка Едуард]] 12:07, 3 січня 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9C%D1%96%D0%B6%D0%BC%D0%B5%D1%80%D0%B5%D0%B6%D0%B5%D0%B2%D0%B8%D0%B9_%D0%B5%D0%BA%D1%80%D0%B0%D0%BD</id>
		<title>Міжмережевий екран</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9C%D1%96%D0%B6%D0%BC%D0%B5%D1%80%D0%B5%D0%B6%D0%B5%D0%B2%D0%B8%D0%B9_%D0%B5%D0%BA%D1%80%D0%B0%D0%BD"/>
				<updated>2010-09-14T07:37:56Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Міжмережевий екран''' або'''мережевий екран''' - комплекс апаратних чи програмних засобів, що здійснює контроль і фільтрацію що проходять через нього мережевих пакетів на різних рівнях моделі OSI у відповідності з заданими правилами .&lt;br /&gt;
&lt;br /&gt;
Основним завданням мережевого екрану є захист [[комп'ютерна мережа | комп'ютерних мереж]] або окремих вузлів від несанкціонованого доступу. Також мережеві екрани часто називають фільтрами, так як їх основне завдання - не пропускати (фільтрувати) пакети, що не підходять під критерії, визначені в конфігурації.&lt;br /&gt;
&lt;br /&gt;
Деякі мережеві екрани також дозволяють здійснювати [[NAT | трансляцію адрес]] - динамічну заміну внутрішньомережевих адрес або портів на зовнішні, що використовуються за межами ЛОМ.&lt;br /&gt;
&lt;br /&gt;
== Інші назви ==&lt;br /&gt;
'''Брандмауер''' - запозичений з німецької мови термін, що є аналогом англійського''firewall''в його оригінальному значенні (стіна, яка розділяє суміжні будівлі, оберігаючи від поширення [[ пожежа]] а). Цікаво, що в області комп'ютерних технологій в німецькій мові вживається слово «[[: de: firewall | firewall]]».&lt;br /&gt;
&lt;br /&gt;
'''Файрволл''','''файрвол''','''файервол''','''фаєрвол''' - утворено [[транслітерація | транслітерацією]] англійського терміна''firewall'', еквівалентного терміну ''міжмережевий екран'', в даний час не є офіційним запозиченим словом в російській мові ((немає АІ | 21 | 02 | 2010)).&lt;br /&gt;
&lt;br /&gt;
== Різновиди мережевих екранів ==&lt;br /&gt;
Мережеві екрани підрозділяються на різні типи залежно від таких характеристик:&lt;br /&gt;
* Чи забезпечує екран з'єднання між одним вузлом і мережею або між двома або більше різними мережами;&lt;br /&gt;
* Чи відбувається контроль потоку даних на мережевому рівні або більш високих рівнях [[Мережева модель OSI | моделі OSI]];&lt;br /&gt;
* Відстежуються чи стану активних сполук чи ні.&lt;br /&gt;
&lt;br /&gt;
Залежно від охоплення контрольованих потоків даних мережеві екрани поділяються на:&lt;br /&gt;
*''Традиційний мережевий''(або''міжмережевий'')''екран''- програма (або невід'ємна частина операційної системи) на шлюзі (сервері передавальному трафік між мережами) або апаратне рішення, контролюючі вхідні і вихідні потоки даних між підключеними мережами.&lt;br /&gt;
*''Персональний мережевий екран''- програма, встановлена на комп'ютері користувача і призначена для захисту від несанкціонованого доступу тільки цього комп'ютера.&lt;br /&gt;
&lt;br /&gt;
Вироджений випадок - використання традиційного мережевого екрану сервером, для обмеження доступу до власних ресурсів.&lt;br /&gt;
&lt;br /&gt;
Залежно від рівня, на якому відбувається контроль доступу, існує поділ на мережеві екрани, що працюють на:&lt;br /&gt;
*''Мережевому рівні'', коли фільтрація відбувається на основі адрес відправника і одержувача пакетів, портів транспортного рівня моделі OSI та статичних правил, заданих адміністратором;&lt;br /&gt;
*''Сеансовому рівні''(також відомі як ((langi | en | [[Stateful Packet Inspection | stateful ]]}}) - відслідковують сеанси між додатками, що не пропускають пакунки порушують специфікації TCP / IP, що часто використовуються у зловмисних операціях - скануванні ресурсів, злому через неправильні реалізації TCP / IP, обрив / уповільнення з'єднань, ін'єкція даних.&lt;br /&gt;
*''Рівні додатків'', фільтрація на підставі аналізу даних програми, що передаються всередині пакету. Такі типи екранів дозволяють блокувати передачу небажаної і потенційно небезпечної інформації, на підставі політик і налаштувань.&lt;br /&gt;
*: Деякі рішення, які відносять до мережевих екранів рівня програми, представляють собою [[проксі-сервер]] и з деякими можливостями мережного екрана, реалізуючи прозорі проксі-сервери, зі спеціалізацією по протоколах. Можливості проксі-сервера і багатопротокольна спеціалізація роблять фільтрацію значно більш гнучкою, ніж на класичних мережевих екранах, але такі програми мають всі недоліки проксі-серверів (наприклад, анонімізація трафіку).&lt;br /&gt;
&lt;br /&gt;
Залежно від відстеження активних сполук мережеві екрани бувають:&lt;br /&gt;
* ((Langi | en | stateless)) (проста фільтрація), які не відслідковують поточні з'єднання (наприклад, [[TCP]]), а фільтрують потік даних виключно на основі статичних правил;&lt;br /&gt;
* ((Langi | en | stateful, [[Stateful Packet Inspection | stateful packet inspection (SPI )]]}} (фільтрація з урахуванням контексту), з відслідковуванням поточних з'єднань та пропуском тільки таких пакетів, які задовольняють логіці й алгоритмам роботи відповідних [ [Мережеві протоколи | протоколів]] і додатків. Такі типи мережних екранів дозволяють ефективніше боротися з різними видами [[DoS-атака | DoS-атак]] та уразливими місцями деяких мережевих протоколів. Крім того, вони забезпечують функціонування таких протоколів, як [[H.323]], [[SIP]], [[FTP]] і т. п., які використовують складні схеми передачі даних між адресатами, що погано піддаються опису статичними правилами, і, найчастіше, несумісних зі стандартними, ((langi | en | stateless)) мережевими екранами.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9C%D1%96%D0%B6%D0%BC%D0%B5%D1%80%D0%B5%D0%B6%D0%B5%D0%B2%D0%B8%D0%B9_%D0%B5%D0%BA%D1%80%D0%B0%D0%BD</id>
		<title>Міжмережевий екран</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9C%D1%96%D0%B6%D0%BC%D0%B5%D1%80%D0%B5%D0%B6%D0%B5%D0%B2%D0%B8%D0%B9_%D0%B5%D0%BA%D1%80%D0%B0%D0%BD"/>
				<updated>2010-09-14T07:36:12Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: Створена сторінка: '''Міжмережевий екран''' або'''мережевий екран''' - комплекс апаратних чи програмних засобів,...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Міжмережевий екран''' або'''мережевий екран''' - комплекс апаратних чи програмних засобів, що здійснює контроль і фільтрацію що проходять через нього мережевих пакетів на різних рівнях [[Модель OSI | моделі OSI]] у відповідності з заданими правилами .&lt;br /&gt;
&lt;br /&gt;
Основним завданням мережевого екрану є захист [[комп'ютерна мережа | комп'ютерних мереж]] або окремих вузлів від несанкціонованого доступу. Також мережеві екрани часто називають фільтрами, так як їх основне завдання - не пропускати (фільтрувати) пакети, що не підходять під критерії, визначені в конфігурації.&lt;br /&gt;
&lt;br /&gt;
Деякі мережеві екрани також дозволяють здійснювати [[NAT | трансляцію адрес]] - динамічну заміну [[Локальная_вичіслітельная_сеть # Адресація | внутрішньомережевих (сірих) адрес]] або портів на зовнішні, що використовуються за межами ЛОМ.&lt;br /&gt;
&lt;br /&gt;
== Інші назви ==&lt;br /&gt;
'''Брандмауер''' (((lang-de | Brandmauer))) - запозичений з німецької мови термін, що є аналогом англійського''firewall''в його оригінальному значенні (стіна, яка розділяє суміжні будівлі, оберігаючи від поширення [[ пожежа]] а). Цікаво, що в області комп'ютерних технологій в німецькій мові вживається слово «[[: de: firewall | firewall]]».&lt;br /&gt;
&lt;br /&gt;
'''Файрволл''','''файрвол''','''файервол''','''фаєрвол''' - утворено [[транслітерація | транслітерацією]] англійського терміна''firewall'', еквівалентного терміну ''міжмережевий екран'', в даний час не є офіційним запозиченим словом в російській мові ((немає АІ | 21 | 02 | 2010)).&lt;br /&gt;
&lt;br /&gt;
== Різновиди мережевих екранів ==&lt;br /&gt;
Мережеві екрани підрозділяються на різні типи залежно від таких характеристик:&lt;br /&gt;
* Чи забезпечує екран з'єднання між одним вузлом і мережею або між двома або більше різними мережами;&lt;br /&gt;
* Чи відбувається контроль потоку даних на мережевому рівні або більш високих рівнях [[Мережева модель OSI | моделі OSI]];&lt;br /&gt;
* Відстежуються чи стану активних сполук чи ні.&lt;br /&gt;
&lt;br /&gt;
Залежно від охоплення контрольованих потоків даних мережеві екрани поділяються на:&lt;br /&gt;
*''Традиційний мережевий''(або''міжмережевий'')''екран''- програма (або невід'ємна частина операційної системи) на шлюзі (сервері передавальному трафік між мережами) або апаратне рішення, контролюючі вхідні і вихідні потоки даних між підключеними мережами.&lt;br /&gt;
*''Персональний мережевий екран''- програма, встановлена на комп'ютері користувача і призначена для захисту від несанкціонованого доступу тільки цього комп'ютера.&lt;br /&gt;
&lt;br /&gt;
Вироджений випадок - використання традиційного мережевого екрану сервером, для обмеження доступу до власних ресурсів.&lt;br /&gt;
&lt;br /&gt;
Залежно від рівня, на якому відбувається контроль доступу, існує поділ на мережеві екрани, що працюють на:&lt;br /&gt;
*''Мережевому рівні'', коли фільтрація відбувається на основі адрес відправника і одержувача пакетів, портів транспортного рівня моделі OSI та статичних правил, заданих адміністратором;&lt;br /&gt;
*''Сеансовому рівні''(також відомі як ((langi | en | [[Stateful Packet Inspection | stateful ]]}}) - відслідковують сеанси між додатками, що не пропускають пакунки порушують специфікації TCP / IP, що часто використовуються у зловмисних операціях - скануванні ресурсів, злому через неправильні реалізації TCP / IP, обрив / уповільнення з'єднань, ін'єкція даних.&lt;br /&gt;
*''Рівні додатків'', фільтрація на підставі аналізу даних програми, що передаються всередині пакету. Такі типи екранів дозволяють блокувати передачу небажаної і потенційно небезпечної інформації, на підставі політик і налаштувань.&lt;br /&gt;
*: Деякі рішення, які відносять до мережевих екранів рівня програми, представляють собою [[проксі-сервер]] и з деякими можливостями мережного екрана, реалізуючи прозорі проксі-сервери, зі спеціалізацією по протоколах. Можливості проксі-сервера і багатопротокольна спеціалізація роблять фільтрацію значно більш гнучкою, ніж на класичних мережевих екранах, але такі програми мають всі недоліки проксі-серверів (наприклад, анонімізація трафіку).&lt;br /&gt;
&lt;br /&gt;
Залежно від відстеження активних сполук мережеві екрани бувають:&lt;br /&gt;
* ((Langi | en | stateless)) (проста фільтрація), які не відслідковують поточні з'єднання (наприклад, [[TCP]]), а фільтрують потік даних виключно на основі статичних правил;&lt;br /&gt;
* ((Langi | en | stateful, [[Stateful Packet Inspection | stateful packet inspection (SPI )]]}} (фільтрація з урахуванням контексту), з відслідковуванням поточних з'єднань та пропуском тільки таких пакетів, які задовольняють логіці й алгоритмам роботи відповідних [ [Мережеві протоколи | протоколів]] і додатків. Такі типи мережних екранів дозволяють ефективніше боротися з різними видами [[DoS-атака | DoS-атак]] та уразливими місцями деяких мережевих протоколів. Крім того, вони забезпечують функціонування таких протоколів, як [[H.323]], [[SIP]], [[FTP]] і т. п., які використовують складні схеми передачі даних між адресатами, що погано піддаються опису статичними правилами, і, найчастіше, несумісних зі стандартними, ((langi | en | stateless)) мережевими екранами.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%86%D1%81%D1%82%D0%BE%D1%80%D1%96%D1%8F_%D0%9E%D0%9E%D0%9F</id>
		<title>Історія ООП</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%86%D1%81%D1%82%D0%BE%D1%80%D1%96%D1%8F_%D0%9E%D0%9E%D0%9F"/>
				<updated>2010-05-20T20:42:20Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Об'єктно-орієнтована парадигма програмування не нова. Її витоки сягають Сімуле-67, хоча перша повна реалізація була в Smalltalk-80. ООП (Об'єктно-орієнтоване програмування) стало популярним в другій половині 80-х у таких різних мовах, як C++, Objective C (інше розширення C), Object і Турбо Паскаль (Turbo Pascal), CLOS (ГО-розширення Ліспу ), Eiffel, Ада (в її останніх втіленнях) і недавно - в Джаві (Java). &lt;br /&gt;
&lt;br /&gt;
Ми будемо розглядати основу ООП на мові C++ та досить схожій на неї мові PHP, іноді Обджект Паскалі (Object Pascal) і Джава (Java) та інші мови.&lt;br /&gt;
&lt;br /&gt;
Мабуть, першим комп'ютерним рішенням, що втілив у собі об'єктний підхід, став програмно-апаратний графічний Планшет (Sketchpad: A Man-Machine Graphical Communications System), що використав обладнання DEC PDP. Його в 1963 р. розробив 25-річний Іван Сазерленд, що допомагав у створенні симуляторів вертольотів військовому науковому агентству DARPA, а потім зайнявся в Массачусетському технологічному інституті докторською дисертацією і мав задоволення спілкування з Клодом Шенноном. За допомогою світлового пера і системи меню, що випадають користувач Планшети міг малювати різні нескладні зображення на дисплеї аналоговому, переміщати їх і точно розташовувати в певних позиціях екрану, а також зберігати. Як поняття класу Сазерленд використовував визначення &amp;quot;майстер&amp;quot;, розділяючи опис і реально існуючий на екрані об'єкт (екземпляр &amp;quot;майстри&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Сазерленд також придумав перший прототип нинішніх систем віртуальної реальності, ухитрившись спроектувати зображення з двох моніторів безпосередньо в очі людини (як стереоскопічний фільм), а було це в 1968 р. Спеціальні датчики контролювали положення голови і відповідно змінювали прокручуваний перед очима ролики. Ця людина захистив вісім патентів з комп'ютерної графіки, займався крокуючим роботами в Каліфорнійському університеті, а потім працював віце-президентом компанії Sun Microsystems.&lt;br /&gt;
Основоположниками об'єктного підходу у програмуванні вважаються норвежці Оле Джохан Дав і Крістен Нюгорт, автори мови Сімула. У 1952 р. Нюгорт вирішив зайнятися моделюванням великих і складних систем реального світу, в 1957-му отримав можливість комп'ютерної реалізації своїх задумів на машині Ferranti MERCURY, але швидко усвідомив обмеженість машинних мов і Фортрану.&lt;br /&gt;
&lt;br /&gt;
Ferranti MERCURY - версія, створена Манчестерським університетом в співдружності з компанією Ferranti в ході робіт над комп'ютером Mark 2. Вона відрізнялася підтримкою операцій з плаваючою крапкою. Пам'ять комп'ютера становила 1024 слова по 40 біт з часом доступу 10 мкс до 10-бітове слову. Пристрій адресації могло працювати з 10 -, 20 - і 40-бітовими словами. Довготривала пам'ять налічувала 4096 40-бітних слів і обробляла їх зі швидкістю 17,28 мс. Для виявлення збоїв виконувалася перевірка парності. Програмісти вирішували завдання за допомогою мови Mercury Autocode.&lt;br /&gt;
&lt;br /&gt;
Фірма Ferranti продала 19 таких машин, останню - в 1963 р.&lt;br /&gt;
&lt;br /&gt;
Історія Сімули почалася в 1962 р. з проекту Simulation Language, призначеного для програмного моделювання методу Монте-Карло. Нюгорт, що займав у той час посаду директора з науки Норвезького комп'ютерного центру (NCC), приступив до створення мови дискретного моделювання. Він залучив до співпраці Оле Джохана Дала, колегу по експериментальній групі Міністерства оборони Норвегії, яку очолював Йан Гервік, засновник інформатики в цій країні. Для робіт NCC придбав данський комп'ютер GIER за 280 тис. дол&lt;br /&gt;
&lt;br /&gt;
Одночасно готувалися дві версії Сімули. Перша, Сімула I, формувалася за контрактом з підрозділом Univac корпорації Sperry Rand для машини UNIVAC 1107 (що обійшлася NCC в 990 тис. дол.) Американські замовники бажали бачити цю мову фортраноподобним, від чого, втім, автори категорично відмовилися; в результаті прабатьком Сімули став Алгол 60. Останній був обраний завдяки блокової архітектурі, гарним засобам приховування даних, а також внаслідок високої популярності в європейських наукових центрах. А роботи над другим варіантом спонсорував NCC.&lt;br /&gt;
&lt;br /&gt;
У 1965 р. авторам прийшла в голову ідея об'єднати дані з процедурами, їх обробляють. Після успішного обговорення можливостей Сімули I на саміті НАТО в 1966 р. вирішено було продовжити його вдосконалення. В мову увійшли нові засоби моделювання й імітації мультіпроцессной роботи. Автори також придумали терміни &amp;quot;клас&amp;quot; і &amp;quot;об'єкт&amp;quot;. Тоді ж виникла і технологія успадкування - творці Сімули ввели в мову можливість використання різними класами загальних властивостей шляхом зазначення назви класу у вигляді префікса. Після публічного анонсу нова технологія викликала інтерес у Данії, Німеччини і СРСР. У нас в кінці 60-х з'явилася реалізація Сімули для Уралан-16.&lt;br /&gt;
&lt;br /&gt;
Нова версія мови була закінчена в січні 1967-го. Він підтримував проектування &amp;quot;зверху вниз&amp;quot; з допомогою віртуальних процедур і технології статичного і динамічного зв'язування. У NCC була сформована робоча група Simula Standards Group. Незабаром до неї підключився Якоб Палм, спеціаліст Шведського інституту оборонних досліджень. Він додав до Сімулу механізм приховування змінних. Перший закінчений компілятор оновленої Сімули 1967 побачив світло в 1969 р. і працював на машинах Control Data. Потім послідували реалізації для UNIVAC 1108 і IBM, але всі вони, на жаль, коштували дуже дорого, що, ймовірно, завадило активному поширенню цього прекрасного мови. Проте з його допомогою були спроектовані, наприклад, перші НВІС-чіпи Intel.&lt;br /&gt;
&lt;br /&gt;
Тим часом Алан Кей (людина, що придумав перший персональний комп'ютер; див. PC Week / RE, N 39/98, с.25) уважно вивчав ідеї, закладені в Планшет, Сімулу і ще два оригінальні мови - LISP, що застосовувався для задач штучного інтелекту , і LOGO, призначений для навчання базовим поняттям програмування. У ході ознайомлення з цими мовами Кей придумав нову концепцію розробки, відповідно до якої набір послідовно виконувати інструкції міг бути замінений на багатовимірну середу взаємодії об'єктів, що спілкуються один з одним шляхом асинхронного обміну повідомленнями. У результаті з'являлася можливість підтримки таке середовище не одним, а безліччю комп'ютерів, об'єднаних у мережу. Правда, для свого часу ця ідея виявилася занадто революційною.&lt;br /&gt;
В кінці 50-х років Кей працював на Денвера військово-повітряній базі &amp;quot;Рандольф&amp;quot; (Randolph), де писав на машинному коді програми для ЕОМ Burroughs 220. Тоді він зіштовхнувся з проблемою передачі сформованих на цій машині даних на комп'ютери інших баз. Стандартних форматів і ОС в сучасному розумінні для тих ЕОМ не існувало, тому Кею довелося створювати прошивки, які містили в собі всю необхідну інформацію і після запуску на інших машинах через простий користувальницький інтерфейс самостійно розгортали потрібні дані. Такі програми Кей спочатку назвав &amp;quot;модулями&amp;quot;, об'єднували дані та код. У 1966 р. він зайнявся науковою діяльністю в галузі молекулярної біології в Університеті шт. Колорадо, де до нього прийшло розуміння важливості цієї ідеї. Кей задумав створення системи модулів (можливо, вже тоді він дав їм назву &amp;quot;об'єкти&amp;quot;), що поєднують дані і алгоритми їх обробки, здатні взаємодіяти один з одним через певні розробником інтерфейси, але не мають уявлення про те, що відбувається за їх межами. При цьому він активно використовував аналогії з біологічними об'єктами і механізмами взаємодії клітин в живому організмі.&lt;br /&gt;
&lt;br /&gt;
Пізніше Кей перейшов в Стенфордський лабораторію з штучного інтелекту, а в 1972 р. влаштувався на роботу в добре відомий науковий центр Xerox PARC, де і втілив ці ідеї у новому об'єктному мовою SmallTalk, спочатку названому їм Biological System і змодельованої на Бейсике, а потім реалізованому на асемблері. У процесі цієї діяльності він запропонував знаменитий термін &amp;quot;об'єктно-орієнтоване програмування&amp;quot; (ООП). Закладені в SmallTalk ідеї ООП і до цього дня залишилися неперевершеними ні в яких інших мовах і системах.&lt;br /&gt;
&lt;br /&gt;
Якщо Кея нерідко називають батьком SmallTalk, то матір'ю цього унікального мови можна вважати професора лінгвістики Адель Голдберг, яка працювала в ті роки в тісній зв'язці з Аланом в Xerox PARC. Вона написала першу документацію до SmallTalk, а потім кілька книг і велика кількість статей з методологій об'єктного аналізу.&lt;br /&gt;
Світову популярність набула версія SmallTalk 80, комерційні реалізації якої вийшли в 1981 р. Щоправда, вони відрізнялися невисокою продуктивністю. Згодом Кей брав участь у роботі групи Squeak, що створила реалізацію SmallTalk під девізом &amp;quot;Об'єктно-орієнтованого програмування потрібна швидкість Сі&amp;quot;. Однак перевершити популярність Сі проекту Squeak не вдалося. Цей елегантний і спритний мову, придуманий в лабораторії AT &amp;amp; T Bell за участю програмістів Кена Томпсона і Денніса Рітчі (відомих ЄС-програмістам по легендарній грі Star Trek), дістався до ООП своїм шляхом.&lt;br /&gt;
&amp;quot;Середні віки&amp;quot; ООП. Хронологія&lt;br /&gt;
&lt;br /&gt;
1974 Марвін Мінськ, основоположник теорії штучного інтелекту, запропонував ідею фрейму, відокремившись опис класу (структури) об'єкта від його конкретного уявлення (примірника) і швидко завоював популярність в мовах штучного інтелекту. Фрейм став прямим попередником сучасного поняття об'єктів в Сі + +.&lt;br /&gt;
&lt;br /&gt;
1976 Крінстен Нюгорн створив нову мову BETA, в якому ввів концепцію шаблонів - більш високого рівня абстракцій, ніж об'єкти. Його колега Оле Джохан Дав ще довгий час працював професором інформатики в Університеті Осло. А Нюгорн на деякий час зайнявся політикою і активно виступав проти вступу Норвегії в Євросоюз.&lt;br /&gt;
&lt;br /&gt;
1980 Бьерн Страуструп, що продовжив справу своїх колег з лабораторії Bell, доповнив мова Сі концепцією класів, заснованої на фреймах і об'єктних механізмах Сімули.&lt;br /&gt;
&lt;br /&gt;
1982 р. У Мехіко пройшла 8-а Міжнародна конференція з надвеликим БД (VLDB), де була запропонована концепція об'єктно-орієнтованих БД і розглядалися питання розширення існуючих мов запитів до БД новими, об'єктними типами даних.&lt;br /&gt;
&lt;br /&gt;
1983 Страуструп дав своєму творінню остаточна назва Сі + +.&lt;br /&gt;
Наш час&lt;br /&gt;
&lt;br /&gt;
1986 Перша всесвітня конференція з об'єктно-орієнтованим системам програмування пройшла в Портленді. Можливо, саме пролунали на ній доповіді надали стимулюючий вплив на Вільяма Аткінсона, інженера Apple, який через рік після цього спроектував систему HyperCard, прообраз сучасних візуальних середовищ швидкої розробки. Ефективність нової технології виявилася настільки високою, що вже в 1989 р. 11 компаній, серед яких були 3Com, American Airlines, Canon, Data General, Hewlett-Packard, Philips Telecommunications, Sun Microsystems і Unisys, заснували групу OMG (Object Management Group), покликану формувати індустріальні стандарти на об'єктне програмування та спрощувати інтеграцію додатків за допомогою універсальних крос-платформних технологій. Ця група першим справою приступила до вироблення єдиного стандарту компонентної моделі CORBA (Common Object Request Broker Architecture) - набору специфікацій, що визначають способи об'єктно-орієнтованого взаємодії компонентів проміжного рівня в гетерогенних середовищах без прив'язки до конкретних мов програмування. З самого початку CORBA націлювалась на підтримку великих, індустріальних проектів, і цей підхід з часом себе повністю виправдав. Сьогодні немає іншого настільки ж поширеного незалежного стандарту, що підтримує самі різні ОС і об'єктні моделі.&lt;br /&gt;
&lt;br /&gt;
1992 Вийшов стандарт CORBA 1.0, що визначає ключові аспекти функціонування CORBA-систем. У нього були включені базове опис об'єктної моделі, набори програмних інтерфейсів підтримки CORBA-систем, а також декларативний мова визначення інтерфейсів Interface Definition Language (IDL), створений OMG для опису розподілених інтерфейсів.&lt;br /&gt;
&lt;br /&gt;
1993 Корпорація Microsoft випустила першу версію компонентної моделі COM (Component Object Model), ідея якої була, мабуть, запозичена з моделі SOM (System Object Model), вже давно існувала в IBM OS / 2 (у створенні OS / 2 Microsoft один час брала активну участь). Спочатку COM готувалася тільки для підтримки технології вбудовування та зв'язування документів OLE, але швидко виділилася в самостійний напрям.&lt;br /&gt;
&lt;br /&gt;
У тому ж 1993-му була запропонована компонентна технологія Microsoft ActiveX, заснована на елементах управління OLE, що прийшли з Visual Basic, де вони називалися VBX / OCX.&lt;br /&gt;
&lt;br /&gt;
1994 Опубліковано стандарт CORBA 2.0, який швидко отримав масове визнання, так як уявляв собою багатий і глибоко пророблений набір документів і охоплював більшість затребуваних ринком завдань. У ньому були ліквідовані недоліки попередньої версії, в результаті чого CORBA 2.0 почав підтримувати транзакції і розуміти універсальну кодування Unicode, а також з'явився набір засобів забезпечення безпеки та взаємодії COM-та CORBA-об'єктів.&lt;br /&gt;
&lt;br /&gt;
Гради Буч і Джеймс Румба з Rational Software вирішили об'єднати дві методології візуального моделювання Booch і OMT і створити на їх основі нову мову UML (Unified Modeling Language).&lt;br /&gt;
&lt;br /&gt;
1995 Sun Microsystems вільно поширює в Інтернеті елемент технології Java - середовище HotJava, підтримуючу мобільний код, розробку проекту Green, яка на той час вважалася в Sun практично пропащою, якби не розвиток Мережі. Новинку одразу ж ліцензує Netscape Communication, а слідом за нею до Java виявляють комерційний інтерес десятки компаній, зокрема Microsoft, IBM, Adobe, Borland, Lotus, Oracle.&lt;br /&gt;
&lt;br /&gt;
Корпорація Borland випустила першу версію середовища швидкої візуальної розробки Delphi 1, засновану на концепції бібліотек стандартних компонентів.&lt;br /&gt;
&lt;br /&gt;
Microsoft повідомляє про нову технологію DCOM - розподіленої версії COM, що дозволила збирати програми з компонентів, що виконувалися на різних комп'ютерах. Спочатку ця технологія називалася Network OLE (мережеве OLE), проте в міру виділення COM в самостійний напрям вирішено було відмовитися від згадки OLE в її назві.&lt;br /&gt;
&lt;br /&gt;
1996 Microsoft називає ActiveX нової об'єктної стратегією, спрямованої на підтримку Інтернету.&lt;br /&gt;
&lt;br /&gt;
1997 Sun Microsystems пропонує концепцію Enterprise JavaBeans - технологію створення корпоративних Java-компонентів, які можна виконувати на серверах додатків, реалізуючи логіку великих, добре масштабованих і захищених систем на платформних-незалежній основі.&lt;br /&gt;
&lt;br /&gt;
Експерти OMG усвідомлюють не тільки важливість об'єктних технологій програмування, а й гостру потребу в універсальних методологічних концепціях проектування великих систем. Секретом стабільності системи і високої віддачі інвестицій фахівці OMG називають незалежну UML-модель і приступають до створення концепції &amp;quot;Архітектура, керована моделлю&amp;quot; (Model Driven Architecture, MDA). В її основу закладається базова платформних-незалежна UML-модель системи, кілька платформних-залежних моделей і колекція визначень програмних інтерфейсів. Першу реалізацію цієї універсальної концепції (так зване &amp;quot;відображення в об'єктний стандарт&amp;quot;) OMG виконала, звичайно, для CORBA.&lt;br /&gt;
&lt;br /&gt;
2000 Microsoft анонсує нову об'єктну платформу. NET і нову мову програмування C #, що поєднує кращі властивості С + + і Java. Він був запропонований Microsoft багато в чому на противагу Java.&lt;br /&gt;
&lt;br /&gt;
2001 OMG випускає специфікацію CORBA 3.0. Вона доповнена можливостями асинхронного обміну повідомленнями, розробки систем реального часу та створення вбудованих систем. У ній з'явилися спільні компоненти, підтримка XML і засоби інтеграції різних Інтернет-технологій. Була продумана модель збирання системи з компонентів JavaBeans і ActiveX. Стало припустимим у рамках одного компонента описувати безліч інтерфейсів, а також використовувати мову сценаріїв. Особливий акцент в третій версії CORBA зроблений на ефективній взаємодії з Java.&lt;br /&gt;
&lt;br /&gt;
2002 Опублікована остання офіційна версія CORBA 3.0.2.&lt;br /&gt;
Що далі?&lt;br /&gt;
&lt;br /&gt;
Незважаючи на багатомільйонні вкладення, зроблені в 1970-1980 роках комерційними компаніями і державними структурами різних країн в універсальні мови програмування (такі, як Алгол, PL / 1, Сі) і мови логічного програмування (перш за все Prolog), найпоширенішою у світі програмної технологією залишається ООП. Найбільш відомим подією нового тисячоліття в цій сфері став швидко набрав популярність мова програмування C #. Його можна сміливо вважати кращим на сьогодні об'єктно-орієнтованим засобом створення графічних додатків (формально - для різних платформ, фактично ж - тільки для. NET, так як без середовища розробки цінність C # дорівнює нулю). Правда, кращим C # можна назвати серед невеликого числа комерційних альтернатив (Java, С + + і, ймовірно, Delphi). Якщо ж порівняти його можливості із засобами SmallTalk, то виявиться, що ряд сильних ідей ООП, закладених у SmallTalk просунутими інженерними умами, опинився в C # згаяним (див. врізку &amp;quot;Оригінальні можливості Smalltalk&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
У найближче десятиліття розвиток ООП буде проходити під впливом трьох концепцій: Microsoft. NET (перш за все. NET Framework і її підмножини і відповідно реалізації C #), Java (всі вхідні в це поняття технології) та CORBA. Причому найважливішою особливістю CORBA залишиться незалежність від ОС і мови програмування CORBA-компонентів. Методологія MDA стане основною об'єднує платформою моделювання для всіх цих технологій, перш за все в силу своєї незалежності від конкретного розробника. Важлива і оголошена наскрізна підтримка MDA у всіх засобах розробки &amp;quot;Швейцарії в світі ПЗ&amp;quot; - корпорації Borland - і гіганта IBM (особливо з огляду на недавню купівлю Rational Software і розвиток проекту Eclipse). Що стосується &amp;quot;програмування в малому&amp;quot; (programming in small), то в цій області продовжиться вдосконалення шаблонів проектування (високорівневого об'єктного програмування), їх впровадження в середовища розробки і подальше поєднання шаблонів підходу з активно розвиваються мовою моделювання UML, остання версія якого 2.0 з'явиться з дня на день.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%86%D1%81%D1%82%D0%BE%D1%80%D1%96%D1%8F_%D0%9E%D0%9E%D0%9F</id>
		<title>Історія ООП</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%86%D1%81%D1%82%D0%BE%D1%80%D1%96%D1%8F_%D0%9E%D0%9E%D0%9F"/>
				<updated>2010-05-20T20:41:15Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Об'єктно-орієнтована парадигма програмування не нова. Її витоки сягають Сімуле-67, хоча перша повна реалізація була в Smalltalk-80. ООП (Об'єктно-орієнтоване програмування) стало популярним в другій половині 80-х у таких різних мовах, як C++, Objective C (інше розширення C), Object і Турбо Паскаль (Turbo Pascal), CLOS (ГО-розширення Ліспу ), Eiffel, Ада (в її останніх втіленнях) і недавно - в Джаві (Java). &lt;br /&gt;
&lt;br /&gt;
Ми будемо розглядати основу ООП на мові C++ та досить схожій на неї мові PHP, іноді Обджект Паскалі (Object Pascal) і Джава (Java) та інші мови.&lt;br /&gt;
&lt;br /&gt;
Мабуть, першим комп'ютерним рішенням, що втілив у собі об'єктний підхід, став програмно-апаратний графічний Планшет (Sketchpad: A Man-Machine Graphical Communications System), що використав обладнання DEC PDP. Його в 1963 р. розробив 25-річний Іван Сазерленд, що допомагав у створенні симуляторів вертольотів військовому науковому агентству DARPA, а потім зайнявся в Массачусетському технологічному інституті докторською дисертацією і мав задоволення спілкування з Клодом Шенноном. За допомогою світлового пера і системи меню, що випадають користувач Планшети міг малювати різні нескладні зображення на дисплеї аналоговому, переміщати їх і точно розташовувати в певних позиціях екрану, а також зберігати. Як поняття класу Сазерленд використовував визначення &amp;quot;майстер&amp;quot;, розділяючи опис і реально існуючий на екрані об'єкт (екземпляр &amp;quot;майстри&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Сазерленд також придумав перший прототип нинішніх систем віртуальної реальності, ухитрившись спроектувати зображення з двох моніторів безпосередньо в очі людини (як стереоскопічний фільм), а було це в 1968 р. Спеціальні датчики контролювали положення голови і відповідно змінювали прокручуваний перед очима ролики. Ця людина захистив вісім патентів з комп'ютерної графіки, займався крокуючим роботами в Каліфорнійському університеті, а потім працював віце-президентом компанії Sun Microsystems.&lt;br /&gt;
Основоположниками об'єктного підходу у програмуванні вважаються норвежці Оле Джохан Дав і Крістен Нюгорт, автори мови Сімула. У 1952 р. Нюгорт вирішив зайнятися моделюванням великих і складних систем реального світу, в 1957-му отримав можливість комп'ютерної реалізації своїх задумів на машині Ferranti MERCURY, але швидко усвідомив обмеженість машинних мов і Фортрану.&lt;br /&gt;
&lt;br /&gt;
Ferranti MERCURY - версія, створена Манчестерським університетом в співдружності з компанією Ferranti в ході робіт над комп'ютером Mark 2. Вона відрізнялася підтримкою операцій з плаваючою крапкою. Пам'ять комп'ютера становила 1024 слова по 40 біт з часом доступу 10 мкс до 10-бітове слову. Пристрій адресації могло працювати з 10 -, 20 - і 40-бітовими словами. Довготривала пам'ять налічувала 4096 40-бітних слів і обробляла їх зі швидкістю 17,28 мс. Для виявлення збоїв виконувалася перевірка парності. Програмісти вирішували завдання за допомогою мови Mercury Autocode.&lt;br /&gt;
&lt;br /&gt;
Фірма Ferranti продала 19 таких машин, останню - в 1963 р.&lt;br /&gt;
&lt;br /&gt;
Історія Сімули почалася в 1962 р. з проекту Simulation Language, призначеного для програмного моделювання методу Монте-Карло. Нюгорт, що займав у той час посаду директора з науки Норвезького комп'ютерного центру (NCC), приступив до створення мови дискретного моделювання. Він залучив до співпраці Оле Джохана Дала, колегу по експериментальній групі Міністерства оборони Норвегії, яку очолював Йан Гервік, засновник інформатики в цій країні. Для робіт NCC придбав данський комп'ютер GIER за 280 тис. дол&lt;br /&gt;
&lt;br /&gt;
Одночасно готувалися дві версії Сімули. Перша, Сімула I, формувалася за контрактом з підрозділом Univac корпорації Sperry Rand для машини UNIVAC 1107 (що обійшлася NCC в 990 тис. дол.) Американські замовники бажали бачити цю мову фортраноподобним, від чого, втім, автори категорично відмовилися; в результаті прабатьком Сімули став Алгол 60. Останній був обраний завдяки блокової архітектурі, гарним засобам приховування даних, а також внаслідок високої популярності в європейських наукових центрах. А роботи над другим варіантом спонсорував NCC.&lt;br /&gt;
&lt;br /&gt;
У 1965 р. авторам прийшла в голову ідея об'єднати дані з процедурами, їх обробляють. Після успішного обговорення можливостей Сімули I на саміті НАТО в 1966 р. вирішено було продовжити його вдосконалення. В мову увійшли нові засоби моделювання й імітації мультіпроцессной роботи. Автори також придумали терміни &amp;quot;клас&amp;quot; і &amp;quot;об'єкт&amp;quot;. Тоді ж виникла і технологія успадкування - творці Сімули ввели в мову можливість використання різними класами загальних властивостей шляхом зазначення назви класу у вигляді префікса. Після публічного анонсу нова технологія викликала інтерес у Данії, Німеччини і СРСР. У нас в кінці 60-х з'явилася реалізація Сімули для Уралан-16.&lt;br /&gt;
&lt;br /&gt;
Нова версія мови була закінчена в січні 1967-го. Він підтримував проектування &amp;quot;зверху вниз&amp;quot; з допомогою віртуальних процедур і технології статичного і динамічного зв'язування. У NCC була сформована робоча група Simula Standards Group. Незабаром до неї підключився Якоб Палм, спеціаліст Шведського інституту оборонних досліджень. Він додав до Сімулу механізм приховування змінних. Перший закінчений компілятор оновленої Сімули 1967 побачив світло в 1969 р. і працював на машинах Control Data. Потім послідували реалізації для UNIVAC 1108 і IBM, але всі вони, на жаль, коштували дуже дорого, що, ймовірно, завадило активному поширенню цього прекрасного мови. Проте з його допомогою були спроектовані, наприклад, перші НВІС-чіпи Intel.&lt;br /&gt;
&lt;br /&gt;
Тим часом Алан Кей (людина, що придумав перший персональний комп'ютер; див. PC Week / RE, N 39/98, с.25) уважно вивчав ідеї, закладені в Планшет, Сімулу і ще два оригінальні мови - LISP, що застосовувався для задач штучного інтелекту , і LOGO, призначений для навчання базовим поняттям програмування. У ході ознайомлення з цими мовами Кей придумав нову концепцію розробки, відповідно до якої набір послідовно виконувати інструкції міг бути замінений на багатовимірну середу взаємодії об'єктів, що спілкуються один з одним шляхом асинхронного обміну повідомленнями. У результаті з'являлася можливість підтримки таке середовище не одним, а безліччю комп'ютерів, об'єднаних у мережу. Правда, для свого часу ця ідея виявилася занадто революційною.&lt;br /&gt;
В кінці 50-х років Кей працював на Денвера військово-повітряній базі &amp;quot;Рандольф&amp;quot; (Randolph), де писав на машинному коді програми для ЕОМ Burroughs 220. Тоді він зіштовхнувся з проблемою передачі сформованих на цій машині даних на комп'ютери інших баз. Стандартних форматів і ОС в сучасному розумінні для тих ЕОМ не існувало, тому Кею довелося створювати прошивки, які містили в собі всю необхідну інформацію і після запуску на інших машинах через простий користувальницький інтерфейс самостійно розгортали потрібні дані. Такі програми Кей спочатку назвав &amp;quot;модулями&amp;quot;, об'єднували дані та код. У 1966 р. він зайнявся науковою діяльністю в галузі молекулярної біології в Університеті шт. Колорадо, де до нього прийшло розуміння важливості цієї ідеї. Кей задумав створення системи модулів (можливо, вже тоді він дав їм назву &amp;quot;об'єкти&amp;quot;), що поєднують дані і алгоритми їх обробки, здатні взаємодіяти один з одним через певні розробником інтерфейси, але не мають уявлення про те, що відбувається за їх межами. При цьому він активно використовував аналогії з біологічними об'єктами і механізмами взаємодії клітин в живому організмі.&lt;br /&gt;
&lt;br /&gt;
Пізніше Кей перейшов в Стенфордський лабораторію з штучного інтелекту, а в 1972 р. влаштувався на роботу в добре відомий науковий центр Xerox PARC, де і втілив ці ідеї у новому об'єктному мовою SmallTalk, спочатку названому їм Biological System і змодельованої на Бейсике, а потім реалізованому на асемблері. У процесі цієї діяльності він запропонував знаменитий термін &amp;quot;об'єктно-орієнтоване програмування&amp;quot; (ООП). Закладені в SmallTalk ідеї ООП і до цього дня залишилися неперевершеними ні в яких інших мовах і системах.&lt;br /&gt;
&lt;br /&gt;
Якщо Кея нерідко називають батьком SmallTalk, то матір'ю цього унікального мови можна вважати професора лінгвістики Адель Голдберг, яка працювала в ті роки в тісній зв'язці з Аланом в Xerox PARC. Вона написала першу документацію до SmallTalk, а потім кілька книг і велика кількість статей з методологій об'єктного аналізу.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%86%D1%81%D1%82%D0%BE%D1%80%D1%96%D1%8F_%D0%9E%D0%9E%D0%9F</id>
		<title>Історія ООП</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%86%D1%81%D1%82%D0%BE%D1%80%D1%96%D1%8F_%D0%9E%D0%9E%D0%9F"/>
				<updated>2010-05-20T20:30:24Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Об'єктно-орієнтована парадигма програмування не нова. Її витоки сягають Сімуле-67, хоча перша повна реалізація була в Smalltalk-80. ООП (Об'єктно-орієнтоване програмування) стало популярним в другій половині 80-х у таких різних мовах, як C++, Objective C (інше розширення C), Object і Турбо Паскаль (Turbo Pascal), CLOS (ГО-розширення Ліспу ), Eiffel, Ада (в її останніх втіленнях) і недавно - в Джаві (Java). &lt;br /&gt;
&lt;br /&gt;
Ми будемо розглядати основу ООП на мові C++ та досить схожій на неї мові PHP, іноді Обджект Паскалі (Object Pascal) і Джава (Java) та інші мови.&lt;br /&gt;
&lt;br /&gt;
Мабуть, першим комп'ютерним рішенням, що втілив у собі об'єктний підхід, став програмно-апаратний графічний Планшет (Sketchpad: A Man-Machine Graphical Communications System), що використав обладнання DEC PDP. Його в 1963 р. розробив 25-річний Іван Сазерленд, що допомагав у створенні симуляторів вертольотів військовому науковому агентству DARPA, а потім зайнявся в Массачусетському технологічному інституті докторською дисертацією і мав задоволення спілкування з Клодом Шенноном. За допомогою світлового пера і системи меню, що випадають користувач Планшети міг малювати різні нескладні зображення на дисплеї аналоговому, переміщати їх і точно розташовувати в певних позиціях екрану, а також зберігати. Як поняття класу Сазерленд використовував визначення &amp;quot;майстер&amp;quot;, розділяючи опис і реально існуючий на екрані об'єкт (екземпляр &amp;quot;майстри&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Сазерленд також придумав перший прототип нинішніх систем віртуальної реальності, ухитрившись спроектувати зображення з двох моніторів безпосередньо в очі людини (як стереоскопічний фільм), а було це в 1968 р. Спеціальні датчики контролювали положення голови і відповідно змінювали прокручуваний перед очима ролики. Ця людина захистив вісім патентів з комп'ютерної графіки, займався крокуючим роботами в Каліфорнійському університеті, а потім працював віце-президентом компанії Sun Microsystems.&lt;br /&gt;
Основоположниками об'єктного підходу у програмуванні вважаються норвежці Оле Джохан Дав і Крістен Нюгорт, автори мови Сімула. У 1952 р. Нюгорт вирішив зайнятися моделюванням великих і складних систем реального світу, в 1957-му отримав можливість комп'ютерної реалізації своїх задумів на машині Ferranti MERCURY, але швидко усвідомив обмеженість машинних мов і Фортрану.&lt;br /&gt;
&lt;br /&gt;
Ferranti MERCURY - версія, створена Манчестерським університетом в співдружності з компанією Ferranti в ході робіт над комп'ютером Mark 2. Вона відрізнялася підтримкою операцій з плаваючою крапкою. Пам'ять комп'ютера становила 1024 слова по 40 біт з часом доступу 10 мкс до 10-бітове слову. Пристрій адресації могло працювати з 10 -, 20 - і 40-бітовими словами. Довготривала пам'ять налічувала 4096 40-бітних слів і обробляла їх зі швидкістю 17,28 мс. Для виявлення збоїв виконувалася перевірка парності. Програмісти вирішували завдання за допомогою мови Mercury Autocode.&lt;br /&gt;
&lt;br /&gt;
Фірма Ferranti продала 19 таких машин, останню - в 1963 р.&lt;br /&gt;
&lt;br /&gt;
Історія Сімули почалася в 1962 р. з проекту Simulation Language, призначеного для програмного моделювання методу Монте-Карло. Нюгорт, що займав у той час посаду директора з науки Норвезького комп'ютерного центру (NCC), приступив до створення мови дискретного моделювання. Він залучив до співпраці Оле Джохана Дала, колегу по експериментальній групі Міністерства оборони Норвегії, яку очолював Йан Гервік, засновник інформатики в цій країні. Для робіт NCC придбав данський комп'ютер GIER за 280 тис. дол&lt;br /&gt;
&lt;br /&gt;
Одночасно готувалися дві версії Сімули. Перша, Сімула I, формувалася за контрактом з підрозділом Univac корпорації Sperry Rand для машини UNIVAC 1107 (що обійшлася NCC в 990 тис. дол.) Американські замовники бажали бачити цю мову фортраноподобним, від чого, втім, автори категорично відмовилися; в результаті прабатьком Сімули став Алгол 60. Останній був обраний завдяки блокової архітектурі, гарним засобам приховування даних, а також внаслідок високої популярності в європейських наукових центрах. А роботи над другим варіантом спонсорував NCC.&lt;br /&gt;
&lt;br /&gt;
У 1965 р. авторам прийшла в голову ідея об'єднати дані з процедурами, їх обробляють. Після успішного обговорення можливостей Сімули I на саміті НАТО в 1966 р. вирішено було продовжити його вдосконалення. В мову увійшли нові засоби моделювання й імітації мультіпроцессной роботи. Автори також придумали терміни &amp;quot;клас&amp;quot; і &amp;quot;об'єкт&amp;quot;. Тоді ж виникла і технологія успадкування - творці Сімули ввели в мову можливість використання різними класами загальних властивостей шляхом зазначення назви класу у вигляді префікса. Після публічного анонсу нова технологія викликала інтерес у Данії, Німеччини і СРСР. У нас в кінці 60-х з'явилася реалізація Сімули для Уралан-16.&lt;br /&gt;
&lt;br /&gt;
Нова версія мови була закінчена в січні 1967-го. Він підтримував проектування &amp;quot;зверху вниз&amp;quot; з допомогою віртуальних процедур і технології статичного і динамічного зв'язування. У NCC була сформована робоча група Simula Standards Group. Незабаром до неї підключився Якоб Палм, спеціаліст Шведського інституту оборонних досліджень. Він додав до Сімулу механізм приховування змінних. Перший закінчений компілятор оновленої Сімули 1967 побачив світло в 1969 р. і працював на машинах Control Data. Потім послідували реалізації для UNIVAC 1108 і IBM, але всі вони, на жаль, коштували дуже дорого, що, ймовірно, завадило активному поширенню цього прекрасного мови. Проте з його допомогою були спроектовані, наприклад, перші НВІС-чіпи Intel.&lt;br /&gt;
&lt;br /&gt;
Тим часом Алан Кей (людина, що придумав перший персональний комп'ютер; див. PC Week / RE, N 39/98, с.25) уважно вивчав ідеї, закладені в Планшет, Сімулу і ще два оригінальні мови - LISP, що застосовувався для задач штучного інтелекту , і LOGO, призначений для навчання базовим поняттям програмування. У ході ознайомлення з цими мовами Кей придумав нову концепцію розробки, відповідно до якої набір послідовно виконувати інструкції міг бути замінений на багатовимірну середу взаємодії об'єктів, що спілкуються один з одним шляхом асинхронного обміну повідомленнями. У результаті з'являлася можливість підтримки таке середовище не одним, а безліччю комп'ютерів, об'єднаних у мережу. Правда, для свого часу ця ідея виявилася занадто революційною.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%86%D1%81%D1%82%D0%BE%D1%80%D1%96%D1%8F_%D0%9E%D0%9E%D0%9F</id>
		<title>Історія ООП</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%86%D1%81%D1%82%D0%BE%D1%80%D1%96%D1%8F_%D0%9E%D0%9E%D0%9F"/>
				<updated>2010-05-20T20:28:49Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Об'єктно-орієнтована парадигма програмування не нова. Її витоки сягають Сімуле-67, хоча перша повна реалізація була в Smalltalk-80. ООП (Об'єктно-орієнтоване програмування) стало популярним в другій половині 80-х у таких різних мовах, як C++, Objective C (інше розширення C), Object і Турбо Паскаль (Turbo Pascal), CLOS (ГО-розширення Ліспу ), Eiffel, Ада (в її останніх втіленнях) і недавно - в Джаві (Java). &lt;br /&gt;
&lt;br /&gt;
Ми будемо розглядати основу ООП на мові C++ та досить схожій на неї мові PHP, іноді Обджект Паскалі (Object Pascal) і Джава (Java) та інші мови.&lt;br /&gt;
&lt;br /&gt;
Мабуть, першим комп'ютерним рішенням, що втілив у собі об'єктний підхід, став програмно-апаратний графічний Планшет (Sketchpad: A Man-Machine Graphical Communications System), що використав обладнання DEC PDP. Його в 1963 р. розробив 25-річний Іван Сазерленд, що допомагав у створенні симуляторів вертольотів військовому науковому агентству DARPA, а потім зайнявся в Массачусетському технологічному інституті докторською дисертацією і мав задоволення спілкування з Клодом Шенноном. За допомогою світлового пера і системи меню, що випадають користувач Планшети міг малювати різні нескладні зображення на дисплеї аналоговому, переміщати їх і точно розташовувати в певних позиціях екрану, а також зберігати. Як поняття класу Сазерленд використовував визначення &amp;quot;майстер&amp;quot;, розділяючи опис і реально існуючий на екрані об'єкт (екземпляр &amp;quot;майстри&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Сазерленд також придумав перший прототип нинішніх систем віртуальної реальності, ухитрившись спроектувати зображення з двох моніторів безпосередньо в очі людини (як стереоскопічний фільм), а було це в 1968 р. Спеціальні датчики контролювали положення голови і відповідно змінювали прокручуваний перед очима ролики. Ця людина захистив вісім патентів з комп'ютерної графіки, займався крокуючим роботами в Каліфорнійському університеті, а потім працював віце-президентом компанії Sun Microsystems.&lt;br /&gt;
Основоположниками об'єктного підходу у програмуванні вважаються норвежці Оле Джохан Дав і Крістен Нюгорт, автори мови Сімула. У 1952 р. Нюгорт вирішив зайнятися моделюванням великих і складних систем реального світу, в 1957-му отримав можливість комп'ютерної реалізації своїх задумів на машині Ferranti MERCURY, але швидко усвідомив обмеженість машинних мов і Фортрану.&lt;br /&gt;
&lt;br /&gt;
Ferranti MERCURY - версія, створена Манчестерським університетом в співдружності з компанією Ferranti в ході робіт над комп'ютером Mark 2. Вона відрізнялася підтримкою операцій з плаваючою крапкою. Пам'ять комп'ютера становила 1024 слова по 40 біт з часом доступу 10 мкс до 10-бітове слову. Пристрій адресації могло працювати з 10 -, 20 - і 40-бітовими словами. Довготривала пам'ять налічувала 4096 40-бітних слів і обробляла їх зі швидкістю 17,28 мс. Для виявлення збоїв виконувалася перевірка парності. Програмісти вирішували завдання за допомогою мови Mercury Autocode.&lt;br /&gt;
&lt;br /&gt;
Фірма Ferranti продала 19 таких машин, останню - в 1963 р.&lt;br /&gt;
&lt;br /&gt;
Історія Сімули почалася в 1962 р. з проекту Simulation Language, призначеного для програмного моделювання методу Монте-Карло. Нюгорт, що займав у той час посаду директора з науки Норвезького комп'ютерного центру (NCC), приступив до створення мови дискретного моделювання. Він залучив до співпраці Оле Джохана Дала, колегу по експериментальній групі Міністерства оборони Норвегії, яку очолював Йан Гервік, засновник інформатики в цій країні. Для робіт NCC придбав данський комп'ютер GIER за 280 тис. дол&lt;br /&gt;
&lt;br /&gt;
Одночасно готувалися дві версії Сімули. Перша, Сімула I, формувалася за контрактом з підрозділом Univac корпорації Sperry Rand для машини UNIVAC 1107 (що обійшлася NCC в 990 тис. дол.) Американські замовники бажали бачити цю мову фортраноподобним, від чого, втім, автори категорично відмовилися; в результаті прабатьком Сімули став Алгол 60. Останній був обраний завдяки блокової архітектурі, гарним засобам приховування даних, а також внаслідок високої популярності в європейських наукових центрах. А роботи над другим варіантом спонсорував NCC.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%86%D1%81%D1%82%D0%BE%D1%80%D1%96%D1%8F_%D0%9E%D0%9E%D0%9F</id>
		<title>Історія ООП</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%86%D1%81%D1%82%D0%BE%D1%80%D1%96%D1%8F_%D0%9E%D0%9E%D0%9F"/>
				<updated>2010-05-20T20:28:09Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Об'єктно-орієнтована парадигма програмування не нова. Її витоки сягають Сімуле-67, хоча перша повна реалізація була в Smalltalk-80. ООП (Об'єктно-орієнтоване програмування) стало популярним в другій половині 80-х у таких різних мовах, як C++, Objective C (інше розширення C), Object і Турбо Паскаль (Turbo Pascal), CLOS (ГО-розширення Ліспу ), Eiffel, Ада (в її останніх втіленнях) і недавно - в Джаві (Java). &lt;br /&gt;
&lt;br /&gt;
Ми будемо розглядати основу ООП на мові C++ та досить схожій на неї мові PHP, іноді Обджект Паскалі (Object Pascal) і Джава (Java) та інші мови.&lt;br /&gt;
&lt;br /&gt;
Мабуть, першим комп'ютерним рішенням, що втілив у собі об'єктний підхід, став програмно-апаратний графічний Планшет (Sketchpad: A Man-Machine Graphical Communications System), що використав обладнання DEC PDP. Його в 1963 р. розробив 25-річний Іван Сазерленд, що допомагав у створенні симуляторів вертольотів військовому науковому агентству DARPA, а потім зайнявся в Массачусетському технологічному інституті докторською дисертацією і мав задоволення спілкування з Клодом Шенноном. За допомогою світлового пера і системи меню, що випадають користувач Планшети міг малювати різні нескладні зображення на дисплеї аналоговому, переміщати їх і точно розташовувати в певних позиціях екрану, а також зберігати. Як поняття класу Сазерленд використовував визначення &amp;quot;майстер&amp;quot;, розділяючи опис і реально існуючий на екрані об'єкт (екземпляр &amp;quot;майстри&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Сазерленд також придумав перший прототип нинішніх систем віртуальної реальності, ухитрившись спроектувати зображення з двох моніторів безпосередньо в очі людини (як стереоскопічний фільм), а було це в 1968 р. Спеціальні датчики контролювали положення голови і відповідно змінювали прокручуваний перед очима ролики. Ця людина захистив вісім патентів з комп'ютерної графіки, займався крокуючим роботами в Каліфорнійському університеті, а потім працював віце-президентом компанії Sun Microsystems.&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9A%D0%BE%D1%80%D0%B8%D1%81%D1%82%D1%83%D0%B2%D0%B0%D1%87:Tkanoff</id>
		<title>Користувач:Tkanoff</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9A%D0%BE%D1%80%D0%B8%D1%81%D1%82%D1%83%D0%B2%D0%B0%D1%87:Tkanoff"/>
				<updated>2010-05-13T11:06:45Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
ttp://reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
tp://reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
p://reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;://reisub.blogspot.com&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
//reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
/reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
eisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
isub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
sub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
ub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
b.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
logspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
ogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
gspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
spot.com&amp;lt;br&amp;gt;&lt;br /&gt;
pot.com&amp;lt;br&amp;gt;&lt;br /&gt;
ot.com&amp;lt;br&amp;gt;&lt;br /&gt;
t.com&amp;lt;br&amp;gt;&lt;br /&gt;
.com&amp;lt;br&amp;gt;&lt;br /&gt;
com&amp;lt;br&amp;gt;&lt;br /&gt;
om&amp;lt;br&amp;gt;&lt;br /&gt;
m&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
14:00&lt;br /&gt;
&lt;br /&gt;
14:06, 13 травня 2010 (EEST)&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9A%D0%BE%D1%80%D0%B8%D1%81%D1%82%D1%83%D0%B2%D0%B0%D1%87:Tkanoff</id>
		<title>Користувач:Tkanoff</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9A%D0%BE%D1%80%D0%B8%D1%81%D1%82%D1%83%D0%B2%D0%B0%D1%87:Tkanoff"/>
				<updated>2010-05-13T11:01:01Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
ttp://reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
tp://reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
p://reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;://reisub.blogspot.com&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
//reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
/reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
reisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
eisub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
isub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
sub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
ub.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
b.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
.blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
blogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
logspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
ogspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
gspot.com&amp;lt;br&amp;gt;&lt;br /&gt;
spot.com&amp;lt;br&amp;gt;&lt;br /&gt;
pot.com&amp;lt;br&amp;gt;&lt;br /&gt;
ot.com&amp;lt;br&amp;gt;&lt;br /&gt;
t.com&amp;lt;br&amp;gt;&lt;br /&gt;
.com&amp;lt;br&amp;gt;&lt;br /&gt;
com&amp;lt;br&amp;gt;&lt;br /&gt;
om&amp;lt;br&amp;gt;&lt;br /&gt;
m&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
14:00&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:%D0%9B%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%96_%D1%82%D0%B0_%D0%B3%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D1%96</id>
		<title>Обговорення:Локальні та глобальні</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:%D0%9B%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%96_%D1%82%D0%B0_%D0%B3%D0%BB%D0%BE%D0%B1%D0%B0%D0%BB%D1%8C%D0%BD%D1%96"/>
				<updated>2010-04-23T06:24:41Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: Створена сторінка: 1. $GLOBALS[variable] = 10; // Присвоюємо значення глобальної змінної };       Цей рядок викличе помилку …&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. $GLOBALS[variable] = 10; // Присвоюємо значення глобальної змінної }; &lt;br /&gt;
&lt;br /&gt;
    Цей рядок викличе помилку виконання.&lt;br /&gt;
    $GLOBALS['variable'] = 10;&lt;br /&gt;
    або $GLOBALS[&amp;quot;variable&amp;quot;] = 10;&lt;br /&gt;
&lt;br /&gt;
[[Користувач:Tkanoff|Tkanoff]] 06:24, 23 квітня 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%9E%D0%9F_%D0%B2_PHP</id>
		<title>ООП в PHP</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%9E%D0%9F_%D0%B2_PHP"/>
				<updated>2010-04-22T09:39:54Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В програмуванні на '''PHP''' в основному використовуються такі парадигми програмування як '''процедурне''' і '''об'єктно-орієнтоване''' програмування.&lt;br /&gt;
&lt;br /&gt;
''Розглянемо ці парадигми детальніше.''&lt;br /&gt;
&lt;br /&gt;
== '''Процедурне програмування.''' ==&lt;br /&gt;
&lt;br /&gt;
Робота цієї концепції заснована на виклику так званих процедур (методи, функції, ...).  Кожна процедура містить певну логіку для виконання тих чи інших операцій і може бути викликана з будь-якого місця програми.  &lt;br /&gt;
&lt;br /&gt;
== '''Об'єктно-орієнтовне програмування (ООП).''' ==&lt;br /&gt;
&lt;br /&gt;
В даній парадигмі основою є певний об'єкт чи сукупність об'єктів, їхні властивості, методи і події. Власне з появою ООП і з'явилися такі терміни як '''клас''', '''наслідування''', '''поліморфізм''', '''інкапсуляція'''.&lt;br /&gt;
&lt;br /&gt;
Якщо розглядати поняття об'єкту концептуально, то об'єкт є лише екземпляром певного класу об'єктів.&lt;br /&gt;
&lt;br /&gt;
Об'єкти представляють собою  часткову інформацію про певну сутність, а власне певну модель, що адекватна завданню що треба вирішити. Цей варіант представлення називається абстракція даних. При такому представленні з об'єктом працювати набагато простіше, ніж з низькорівневим представленнями з описом всіх  можливих властивостей і методів.&lt;br /&gt;
&lt;br /&gt;
'''Кожен об'єкт має свій певний тип (клас), що об'єднає в собі наступні елементи:'''&lt;br /&gt;
&lt;br /&gt;
   1. '''Властивості''' – певні параметри і характеристики об'єкту&lt;br /&gt;
   2. '''Методи''' – дії, що можна виконувати над даним об'єктом, чи які може виконувати він сам&lt;br /&gt;
   3. '''Події''' – повідомлення що виникають при зміні стану об'єкта&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ООП функціонує за наступними принципами:'''&lt;br /&gt;
&lt;br /&gt;
   1. '''Наслідування''' – це можливість породжувати один клас від іншого, при чому всі методи і властивості батьківського класу&lt;br /&gt;
                передаються дочірньому, дочірній клас в свою чергу може набувати нових методів і властивостей,&lt;br /&gt;
                яких не було в батьківському і також передавати їх в похідні від себе класи.&lt;br /&gt;
   2. '''Поліморфізм''' – це можливість дочірнього класу змінювати реалізацію тих чи інших дій батьківського класу.&lt;br /&gt;
   3. '''Інкапсуляція''' – це властивість об'єкта мати спеціальний інтерфейс (певний метод), через який і здійснюється&lt;br /&gt;
                взаємодія зовнішнього середовища з внутрішніми методами класу. При чому зовнішнє середовище може і не&lt;br /&gt;
                підозрювати про структуру і логіку  внутрішніх методів.&lt;br /&gt;
&lt;br /&gt;
Якщо розглядати практичне застосування парадигм програмування стосовно '''PHP''', то в попередніх до '''PHP 5''' версіях використовується в основному процедурне програмування, так як об'єктна схема там вимальована достатньо умовно (тільки для виділення окремих сутностей, їх методів і властивостей в певні класи). Вже в '''5-й''' версії '''PHP''' механізм взаємодії з об'єктами зазнав еволюційних змін.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Області видимості методів і властивостей класів. ==&lt;br /&gt;
&lt;br /&gt;
В '''PHP 5''' введені специфікатори доступу до методів і властивостей класів:&lt;br /&gt;
&lt;br /&gt;
    * '''public''' – доступний без обмежень&lt;br /&gt;
    * '''protected''' – тільки в середині класу, в якому вони оголошені і похідних від нього класах&lt;br /&gt;
    * '''private''' – тільки в середині класу, в якому вони оголошені&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
По замовчуванню виставляється тип доступу ''public''.&lt;br /&gt;
&lt;br /&gt;
Розглянемо приклад з методами і властивостями різних типів доступності.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
        // оголошуємо основний клас&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        private $privateName = 'Private Name';&lt;br /&gt;
        protected $protectedName = 'Protected Name';&lt;br /&gt;
        public $publicName = 'Public Name';&lt;br /&gt;
 &lt;br /&gt;
    private function PrivateFunction()&lt;br /&gt;
    {&lt;br /&gt;
        echo 'PrivateFunction()';&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    protected function ProtectedFunction()&lt;br /&gt;
    {&lt;br /&gt;
        echo 'ProtectedFunction()';&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function PublicFunction()&lt;br /&gt;
    {&lt;br /&gt;
        echo 'PublicFunction()';&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function GetPrivate()&lt;br /&gt;
    {&lt;br /&gt;
        echo $this-&amp;gt;privateName;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function GetProtected()&lt;br /&gt;
    {&lt;br /&gt;
        echo $this-&amp;gt;protectedName;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function GetPublic()&lt;br /&gt;
    {&lt;br /&gt;
        echo $this-&amp;gt;publicName;&lt;br /&gt;
     }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // оголошуємо похідний клас від SomeClass&lt;br /&gt;
    class SomeClass1 extends SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        public function GetPrivateFromParent()&lt;br /&gt;
        {&lt;br /&gt;
            echo $this-&amp;gt;privateName;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $someObj1 = new SomeClass;&lt;br /&gt;
    $someObj2 = new SomeClass1;&lt;br /&gt;
&lt;br /&gt;
    // Доступ до private методів і властивостей&lt;br /&gt;
    echo $someObj1-&amp;gt;privateName; //  Виводить помилку&lt;br /&gt;
    echo $someObj2-&amp;gt;privateName; //  Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;PrivateFunction(); //  Виводить помилку&lt;br /&gt;
    $someObj2-&amp;gt;PrivateFunction(); //  Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;GetPrivate(); //  Виводится 'Private Name'&lt;br /&gt;
    $someObj2-&amp;gt;GetPrivate(); //  Виводится 'Private Name'*/&lt;br /&gt;
    $someObj2-&amp;gt;GetPrivateFromParent(); //  Нічого не виводиться&lt;br /&gt;
&lt;br /&gt;
    // Доступ до protected методів і властивостей&lt;br /&gt;
    echo $someObj1-&amp;gt;protectedName; // Виводить помилку&lt;br /&gt;
    echo $someObj2-&amp;gt;protectedName; // Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;ProtectedFunction(); // Виводить помилку&lt;br /&gt;
    $someObj2-&amp;gt;ProtectedFunction(); // Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;GetProtected(); // Виводится 'Protected Name'&lt;br /&gt;
    $someObj2-&amp;gt;GetProtected(); // Виводится 'Protected Name'&lt;br /&gt;
&lt;br /&gt;
    // Доступ до public методів і властивостей&lt;br /&gt;
    echo $someObj1-&amp;gt;publicName; // Виводиться 'Public Name'&lt;br /&gt;
    echo $someObj2-&amp;gt;publicName; // Виводиться 'Public Name'&lt;br /&gt;
    $someObj1-&amp;gt;PublicFunction(); // Виводиться 'PublicFunction()'&lt;br /&gt;
    $someObj2-&amp;gt;PublicFunction(); // Виводиться 'PublicFunction()'&lt;br /&gt;
    $someObj1-&amp;gt;GetPublic(); // Виводиться 'Public Name'&lt;br /&gt;
    $someObj2-&amp;gt;GetPublic(); // Виводиться 'Public Name'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Є ще також статичні (''static'') методи і властивості. Їхньою особливістю є те, що вони не належать певному об'єктові, вони єдині для цілого класу, і можуть викликатися без створення об'єкту. Зміна статичної властивості в одному з об'єктів класу призводить до його зміни для всіх об'єктів цього класу.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
      // оголошуємо основний клас&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        static $staticVar = 'Static Variable';&lt;br /&gt;
 &lt;br /&gt;
        static function StaticFunction()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'StaticFunction()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    echo SomeClass::StaticFunction(); // Виводить StaticFunction()&lt;br /&gt;
    echo SomeClass::$staticVar; // Виводить Static Variable&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Константи класу ==&lt;br /&gt;
&lt;br /&gt;
При описі класу в '''PHP 5''' можна задавати властивості-константи (ключове слово '''const'''). Викликати константи можна і без створення об'єкту на основі класу, в якому оголошені константи.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
          const SOME_CONSTANT = &amp;quot;SOME CONSTANT&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    echo SomeClass::SOME_CONSTANT; // Виводить &amp;quot;SOME CONSTANT&amp;quot;&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Конструктори и деструктори. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Конструктор ('''__construct()''') і деструктор ('''__destruct()''') це методи що викликаються автоматично при створенні і знищенні об'єкту відповідно:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        function __construct()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'Create object';&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        function __destruct()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'Destroy object';&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
    $someObj = new SomeClass; // Виводиться Create object&lt;br /&gt;
    unset($someObj); // Виводиться Destroy object&lt;br /&gt;
    &lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Абстрактні методи і класи. ==&lt;br /&gt;
&lt;br /&gt;
Абстрактні (''abstract'') методи і класи тільки оголошуються, клас який містить абстрактні методи повинен оголоситися як абстрактний. На основі абстрактного класу можна тільки створювати інші класи, а вже від них об'єкти. Абстрактний клас може містити і звичайні (не абстрактні) елементи.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    abstract class SomeAbstractClass&lt;br /&gt;
    {&lt;br /&gt;
        // оголошення абстрактної функції&lt;br /&gt;
        abstract public function abstractFunction();&lt;br /&gt;
        // оголошення неабстрактної функції&lt;br /&gt;
        public function GeneralFunction()&lt;br /&gt;
        {&lt;br /&gt;
 &lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
    class SomeClass extends SomeAbstractClass&lt;br /&gt;
    {&lt;br /&gt;
        // перевантаження абстрактного методу&lt;br /&gt;
        public function abstractFunction()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'abstractFunction()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $someObj = new SomeAbstractClass; // Помилка створення об'єкта&lt;br /&gt;
    $someObj1 = new SomeClass;&lt;br /&gt;
    $someObj1-&amp;gt;abstrFunc(); // Виводить 'abstractFunction()'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Інтерфейси. ==&lt;br /&gt;
&lt;br /&gt;
В '''PHP 5''' немає множинного наслідування, тобто один клас не може бути створений на основі кількох інших класів. Але клас може бути створений на основі кількох інтерфейсів. Інтерфейс – це фактично абстрактний клас, який містить тільки абстрактні методи і не містить ніяких властивостей.&lt;br /&gt;
&lt;br /&gt;
Оголошуються інтерфейси з використанням ключового слова ''interface'', а всі функції оголошуються стандартно, з використанням ключового слова ''function''.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    // оголошення інтерфейсів&lt;br /&gt;
    interface InterfaceOne&lt;br /&gt;
    {&lt;br /&gt;
        function SomeFunctionOne();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    interface InterfaceTwo&lt;br /&gt;
    {&lt;br /&gt;
        function SomeFunctionTwo();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
     // оголошення класу на основі інтерфейсів&lt;br /&gt;
    class SomeClass implements InterfaceOne, InterfaceTwo&lt;br /&gt;
    {&lt;br /&gt;
        public function SomeFunctionOne()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'SomeFunctionOne()';&lt;br /&gt;
        }&lt;br /&gt;
        public function SomeFunctionTwo()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'SomeFunctionTwo()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $object = new SomeClass;&lt;br /&gt;
    $object-&amp;gt;SomeFunctionOne(); // Виводить 'SomeFunctionOne()'&lt;br /&gt;
    $object-&amp;gt;SomeFunctionTwo(); // Виводить 'SomeFunctionTwo()'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Фінальні методи і класи. ==&lt;br /&gt;
&lt;br /&gt;
В '''PHP 5''' є можливість задати таку властивість класу і методу як фінальний (final). На основі фінальних класів неможливо створити класи нащадки. Також не можна перевизначити фінальний метод в класах нащадках.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    final class FinalClass&lt;br /&gt;
    {&lt;br /&gt;
 &lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class ClassWithFinalMethod&lt;br /&gt;
    {&lt;br /&gt;
        final public function FinalFunction()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'FinalFunction()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // наступне оголошення класу викликає помилку&lt;br /&gt;
    class SomeClass1 extends FinalClass&lt;br /&gt;
    {&lt;br /&gt;
        // опис класу&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // створюємо клас на основі класу з фінальним методом&lt;br /&gt;
    class SomeClass1 extends ClassWithFinalMethod&lt;br /&gt;
    {&lt;br /&gt;
    // наступне перевизначення методі викликає помилку&lt;br /&gt;
        public function FinalFunction()&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Обробка винятків (помилок). ==&lt;br /&gt;
&lt;br /&gt;
Найцікавішим нововведенням в '''PHP 5''' є  методи для обробки винятків. Для цього використовуються конструкції  try/catch/throw.&lt;br /&gt;
&lt;br /&gt;
Розглянемо простий приклад використання цих методів:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    try {&lt;br /&gt;
            // відкриваємо файл для читання&lt;br /&gt;
            $fp = @fopen(&amp;quot;somefile.txt&amp;quot;, &amp;quot;r&amp;quot;);&lt;br /&gt;
            // якщо файл відсутній, створюємо виключення&lt;br /&gt;
            if (!$someFile)&lt;br /&gt;
                throw new Exception(&amp;quot; Помилка відкриття файлу!&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
            fclose($someFile);&lt;br /&gt;
        }&lt;br /&gt;
        catch&lt;br /&gt;
        (Exception $exception)&lt;br /&gt;
        {&lt;br /&gt;
            // метод $exception-&amp;gt;getLine() повертає номер рядка даного скрипта, в якому виникла помилка&lt;br /&gt;
            echo &amp;quot;Помилка в рядку &amp;quot;, $exception-&amp;gt;getLine();&lt;br /&gt;
            echo $exception-&amp;gt;getMessage(); // Выводит &amp;quot;Помилка відкриття файлу!&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ключове слово ''instanceof''.&lt;br /&gt;
Метод ''instanceof'' дозволяє визначити походження об'єкта, його приналежність до певного класу, або чи є він нащадком якогось об'єкта. Також за допомогою  instanceof можна визначити чи об'єкт екземпляром класу, створеного на основі певного інтерфейсу.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    interface SomeInterfaceOne { }&lt;br /&gt;
    interface SomeInterfaceTwo { }&lt;br /&gt;
    class SomeClassTypeOne { }&lt;br /&gt;
    class SomeClassTypeTwo extends SomeClassTypeOne {}&lt;br /&gt;
    class SomeClassTypeThree implements SomeInterfaceOne, SomeInterfaceTwo {}&lt;br /&gt;
 &lt;br /&gt;
    $objOne = new SomeClassTypeOne;&lt;br /&gt;
    $objTwo = new SomeClassTypeTwo;&lt;br /&gt;
    $objThree = new SomeClassTypeThree;&lt;br /&gt;
    $clonedObj = clone $objThree;&lt;br /&gt;
&lt;br /&gt;
    // наступний блок виводить: об'єкт $objOne належить до класу SomeClassTypeOne&lt;br /&gt;
    if($objOne instanceof SomeClassTypeOne)&lt;br /&gt;
        echo 'об\'єкт $objOne належить до класу SomeClassTypeOne';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objTwo належить до класу SomeClassTypeTwo&lt;br /&gt;
    if($objTwo instanceof SomeClassTypeTwo)&lt;br /&gt;
        echo 'об\'єкт $objTwo належить до класу SomeClassTypeTwo';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objThree належить до класу SomeClassTypeThree&lt;br /&gt;
    if($objThree instanceof SomeClassTypeThree)&lt;br /&gt;
        echo 'об\'єкт $objThree належить до класу SomeClassTypeThree';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objTwo є екземпляром класу створеного на основі класу SomeClassTypeOne&lt;br /&gt;
    if($objTwo instanceof SomeClassTypeOne)&lt;br /&gt;
        echo 'об\'єкт $objTwo є екземпляром класу створеного на основі класу SomeClassTypeOne';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceOne&lt;br /&gt;
    if($objThree instanceof SomeInterfaceOne)&lt;br /&gt;
        echo 'об\'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceOne';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceTwo   &lt;br /&gt;
    if($objThree instanceof SomeInterfaceTwo)&lt;br /&gt;
        echo 'об\'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceTwo';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкта $clonedObj створений на основі об'єкту $objThree   &lt;br /&gt;
    if($clonedObj instanceof $objThree)&lt;br /&gt;
        echo 'об\'єкта $clonedObj створений на основі об\'єкту $objThree';&lt;br /&gt;
        ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Функція __autoload() ==&lt;br /&gt;
&lt;br /&gt;
Функція ''__autoload()'' викликається в випадку коли створюється об'єкт на основі неіснуючого або неописаного в даному конкретному файлі з кодом класу&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    function __autoload($class)&lt;br /&gt;
    {&lt;br /&gt;
        echo &amp;quot;спроба створити об'єкт невизначеного класу &amp;quot;, $class;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // спроба створити об'єкт невизначеного класу MyClass&lt;br /&gt;
    // Fatal error: Class 'MyClass' not found in C:\wamp\www\test.php on line 5&lt;br /&gt;
    $someObj = new SomeWrongClass;&lt;br /&gt;
 &lt;br /&gt;
    // наступна стрічка трохи практичніша&lt;br /&gt;
    // (екрануємо створення об'єту символом &amp;quot;@&amp;quot;)&lt;br /&gt;
    // вона виводить:&lt;br /&gt;
    // спроба створити об'єкт невизначеного класу MyClass&lt;br /&gt;
    $someObj = @new SomeWrongClass;&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Перевантаження доступу до властивостей об'єкту. ==&lt;br /&gt;
&lt;br /&gt;
Методи доступу ''__get()'' і ''__set()'' дозволяють динамічно визначати властивості об'єктів. ''__get()'' в якості параметра отримує ім'я властивості, а  ''__set()'' окрім імені ще і нове значення властивості, яке відповідно і присвоює.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        private $classPropertys;&lt;br /&gt;
        function __set($name, $value)&lt;br /&gt;
        {&lt;br /&gt;
            echo &amp;quot;__set: присвоювання властивості $name = $value&amp;quot;;&lt;br /&gt;
            $this-&amp;gt;classPropertys[$name]=$value;&lt;br /&gt;
        }&lt;br /&gt;
   &lt;br /&gt;
        function __get($name)&lt;br /&gt;
        {&lt;br /&gt;
            echo &amp;quot;__get: читання властивості $name: &amp;quot;;&lt;br /&gt;
            echo $this-&amp;gt;classPropertys[$name];&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    $obj = new SomeClass;&lt;br /&gt;
    $obj-&amp;gt;name = 'New Value'; // Виводить &amp;quot;__set: присвоювання властивості name=New Value&amp;quot;&lt;br /&gt;
    $value = $obj-&amp;gt;name; // Виводить &amp;quot;__get: читання властивості name: New Value&amp;quot;&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Перевантаження викликів методів класу. ==&lt;br /&gt;
&lt;br /&gt;
Якщо метод ''__call()'' описаний в певному класі, тоді він автоматично переловлює виклики до неіснуючих методів цього класу. В якості параметрів він отримує ім'я і параметри методу що викликається.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        function __call($name, $params)&lt;br /&gt;
        {&lt;br /&gt;
            echo &amp;quot;Помилка: викликано неіснуючий метод $name з параметром[ами]: &amp;quot;;&lt;br /&gt;
            foreach($params as $val)&lt;br /&gt;
            {&lt;br /&gt;
                echo $val.' | ';&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    $obj = new SomeClass;&lt;br /&gt;
    $obj-&amp;gt;WrongMethodOne(1, 2, 'param'); // Виводить: 'Помилка: викликано неіснуючий метод&lt;br /&gt;
                                    // WrongMethodOne з параметром[ами]: 1 | 2 | param |'&lt;br /&gt;
    $obj-&amp;gt;WrongMethodTwo(123); // Виводить: 'Помилка: викликано неіснуючий метод WrongMethodOne з параметром[ами]: 123 |'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Інтернет-програмування|*]]&lt;br /&gt;
&lt;br /&gt;
[[category:Навчальні проекти]]&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%9E%D0%9F_%D0%B2_PHP</id>
		<title>ООП в PHP</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%9E%D0%9F_%D0%B2_PHP"/>
				<updated>2010-04-22T09:33:30Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В програмуванні на '''PHP''' в основному використовуються такі парадигми програмування як '''процедурне''' і '''об'єктно-орієнтоване''' програмування.&lt;br /&gt;
&lt;br /&gt;
''Розглянемо ці парадигми детальніше.''&lt;br /&gt;
&lt;br /&gt;
== '''Процедурне програмування.''' ==&lt;br /&gt;
&lt;br /&gt;
Робота цієї концепції заснована на виклику так званих процедур (методи, функції, ...).  Кожна процедура містить певну логіку для виконання тих чи інших операцій і може бути викликана з будь-якого місця програми.  &lt;br /&gt;
&lt;br /&gt;
== '''Об'єктно-орієнтовне програмування (ООП).''' ==&lt;br /&gt;
&lt;br /&gt;
В даній парадигмі основою є певний об'єкт чи сукупність об'єктів, їхні властивості, методи і події. Власне з появою ООП і з'явилися такі терміни як '''клас''', '''наслідування''', '''поліморфізм''', '''інкапсуляція'''.&lt;br /&gt;
&lt;br /&gt;
Якщо розглядати поняття об'єкту концептуально, то об'єкт є лише екземпляром певного класу об'єктів.&lt;br /&gt;
&lt;br /&gt;
Об'єкти представляють собою  часткову інформацію про певну сутність, а власне певну модель, що адекватна завданню що треба вирішити. Цей варіант представлення називається абстракція даних. При такому представленні з об'єктом працювати набагато простіше, ніж з низькорівневим представленнями з описом всіх  можливих властивостей і методів.&lt;br /&gt;
&lt;br /&gt;
'''Кожен об'єкт має свій певний тип (клас), що об'єднає в собі наступні елементи:'''&lt;br /&gt;
&lt;br /&gt;
   1. '''Властивості''' – певні параметри і характеристики об'єкту&lt;br /&gt;
   2. '''Методи''' – дії, що можна виконувати над даним об'єктом, чи які може виконувати він сам&lt;br /&gt;
   3. '''Події''' – повідомлення що виникають при зміні стану об'єкта&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ООП функціонує за наступними принципами:'''&lt;br /&gt;
&lt;br /&gt;
   1. '''Наслідування''' – це можливість породжувати один клас від іншого, при чому всі методи і властивості батьківського класу передаються дочірньому, дочірній клас в свою чергу може набувати нових методів і властивостей, яких не було в батьківському і також передавати їх в похідні від себе класи.&lt;br /&gt;
   2. '''Поліморфізм''' – це можливість дочірнього класу змінювати реалізацію тих чи інших дій батьківського класу.&lt;br /&gt;
   3. '''Інкапсуляція''' – це властивість об'єкта мати спеціальний інтерфейс (певний метод), через який і здійснюється взаємодія зовнішнього середовища з внутрішніми методами класу. При чому зовнішнє середовище може і не підозрювати про структуру і логіку  внутрішніх методів.&lt;br /&gt;
&lt;br /&gt;
Якщо розглядати практичне застосування парадигм програмування стосовно '''PHP''', то в попередніх до '''PHP 5''' версіях використовується в основному процедурне програмування, так як об'єктна схема там вимальована достатньо умовно (тільки для виділення окремих сутностей, їх методів і властивостей в певні класи). Вже в '''5-й''' версії '''PHP''' механізм взаємодії з об'єктами зазнав еволюційних змін.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Області видимості методів і властивостей класів. ==&lt;br /&gt;
&lt;br /&gt;
В '''PHP 5''' введені специфікатори доступу до методів і властивостей класів:&lt;br /&gt;
&lt;br /&gt;
    * '''public''' – доступний без обмежень&lt;br /&gt;
    * '''protected''' – тільки в середині класу, в якому вони оголошені і похідних від нього класах&lt;br /&gt;
    * '''private''' – тільки в середині класу, в якому вони оголошені&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
По замовчуванню виставляється тип доступу ''public''.&lt;br /&gt;
&lt;br /&gt;
Розглянемо приклад з методами і властивостями різних типів доступності.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
        // оголошуємо основний клас&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        private $privateName = 'Private Name';&lt;br /&gt;
        protected $protectedName = 'Protected Name';&lt;br /&gt;
        public $publicName = 'Public Name';&lt;br /&gt;
 &lt;br /&gt;
    private function PrivateFunction()&lt;br /&gt;
    {&lt;br /&gt;
        echo 'PrivateFunction()';&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    protected function ProtectedFunction()&lt;br /&gt;
    {&lt;br /&gt;
        echo 'ProtectedFunction()';&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function PublicFunction()&lt;br /&gt;
    {&lt;br /&gt;
        echo 'PublicFunction()';&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function GetPrivate()&lt;br /&gt;
    {&lt;br /&gt;
        echo $this-&amp;gt;privateName;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function GetProtected()&lt;br /&gt;
    {&lt;br /&gt;
        echo $this-&amp;gt;protectedName;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function GetPublic()&lt;br /&gt;
    {&lt;br /&gt;
        echo $this-&amp;gt;publicName;&lt;br /&gt;
     }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // оголошуємо похідний клас від SomeClass&lt;br /&gt;
    class SomeClass1 extends SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        public function GetPrivateFromParent()&lt;br /&gt;
        {&lt;br /&gt;
            echo $this-&amp;gt;privateName;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $someObj1 = new SomeClass;&lt;br /&gt;
    $someObj2 = new SomeClass1;&lt;br /&gt;
&lt;br /&gt;
    // Доступ до private методів і властивостей&lt;br /&gt;
    echo $someObj1-&amp;gt;privateName; //  Виводить помилку&lt;br /&gt;
    echo $someObj2-&amp;gt;privateName; //  Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;PrivateFunction(); //  Виводить помилку&lt;br /&gt;
    $someObj2-&amp;gt;PrivateFunction(); //  Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;GetPrivate(); //  Виводится 'Private Name'&lt;br /&gt;
    $someObj2-&amp;gt;GetPrivate(); //  Виводится 'Private Name'*/&lt;br /&gt;
    $someObj2-&amp;gt;GetPrivateFromParent(); //  Нічого не виводиться&lt;br /&gt;
&lt;br /&gt;
    // Доступ до protected методів і властивостей&lt;br /&gt;
    echo $someObj1-&amp;gt;protectedName; // Виводить помилку&lt;br /&gt;
    echo $someObj2-&amp;gt;protectedName; // Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;ProtectedFunction(); // Виводить помилку&lt;br /&gt;
    $someObj2-&amp;gt;ProtectedFunction(); // Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;GetProtected(); // Виводится 'Protected Name'&lt;br /&gt;
    $someObj2-&amp;gt;GetProtected(); // Виводится 'Protected Name'&lt;br /&gt;
&lt;br /&gt;
    // Доступ до public методів і властивостей&lt;br /&gt;
    echo $someObj1-&amp;gt;publicName; // Виводиться 'Public Name'&lt;br /&gt;
    echo $someObj2-&amp;gt;publicName; // Виводиться 'Public Name'&lt;br /&gt;
    $someObj1-&amp;gt;PublicFunction(); // Виводиться 'PublicFunction()'&lt;br /&gt;
    $someObj2-&amp;gt;PublicFunction(); // Виводиться 'PublicFunction()'&lt;br /&gt;
    $someObj1-&amp;gt;GetPublic(); // Виводиться 'Public Name'&lt;br /&gt;
    $someObj2-&amp;gt;GetPublic(); // Виводиться 'Public Name'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Є ще також статичні (''static'') методи і властивості. Їхньою особливістю є те, що вони не належать певному об'єктові, вони єдині для цілого класу, і можуть викликатися без створення об'єкту. Зміна статичної властивості в одному з об'єктів класу призводить до його зміни для всіх об'єктів цього класу.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
      // оголошуємо основний клас&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        static $staticVar = 'Static Variable';&lt;br /&gt;
 &lt;br /&gt;
        static function StaticFunction()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'StaticFunction()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    echo SomeClass::StaticFunction(); // Виводить StaticFunction()&lt;br /&gt;
    echo SomeClass::$staticVar; // Виводить Static Variable&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Константи класу ==&lt;br /&gt;
&lt;br /&gt;
При описі класу в '''PHP 5''' можна задавати властивості-константи (ключове слово '''const'''). Викликати константи можна і без створення об'єкту на основі класу, в якому оголошені константи.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
          const SOME_CONSTANT = &amp;quot;SOME CONSTANT&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    echo SomeClass::SOME_CONSTANT; // Виводить &amp;quot;SOME CONSTANT&amp;quot;&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Конструктори и деструктори. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Конструктор ('''__construct()''') і деструктор ('''__destruct()''') це методи що викликаються автоматично при створенні і знищенні об'єкту відповідно:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        function __construct()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'Create object';&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        function __destruct()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'Destroy object';&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
    $someObj = new SomeClass; // Виводиться Create object&lt;br /&gt;
    unset($someObj); // Виводиться Destroy object&lt;br /&gt;
    &lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Абстрактні методи і класи. ==&lt;br /&gt;
&lt;br /&gt;
Абстрактні (''abstract'') методи і класи тільки оголошуються, клас який містить абстрактні методи повинен оголоситися як абстрактний. На основі абстрактного класу можна тільки створювати інші класи, а вже від них об'єкти. Абстрактний клас може містити і звичайні (не абстрактні) елементи.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    abstract class SomeAbstractClass&lt;br /&gt;
    {&lt;br /&gt;
        // оголошення абстрактної функції&lt;br /&gt;
        abstract public function abstractFunction();&lt;br /&gt;
        // оголошення неабстрактної функції&lt;br /&gt;
        public function GeneralFunction()&lt;br /&gt;
        {&lt;br /&gt;
 &lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
    class SomeClass extends SomeAbstractClass&lt;br /&gt;
    {&lt;br /&gt;
        // перевантаження абстрактного методу&lt;br /&gt;
        public function abstractFunction()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'abstractFunction()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $someObj = new SomeAbstractClass; // Помилка створення об'єкта&lt;br /&gt;
    $someObj1 = new SomeClass;&lt;br /&gt;
    $someObj1-&amp;gt;abstrFunc(); // Виводить 'abstractFunction()'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Інтерфейси. ==&lt;br /&gt;
&lt;br /&gt;
В '''PHP 5''' немає множинного наслідування, тобто один клас не може бути створений на основі кількох інших класів. Але клас може бути створений на основі кількох інтерфейсів. Інтерфейс – це фактично абстрактний клас, який містить тільки абстрактні методи і не містить ніяких властивостей.&lt;br /&gt;
&lt;br /&gt;
Оголошуються інтерфейси з використанням ключового слова ''interface'', а всі функції оголошуються стандартно, з використанням ключового слова ''function''.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    // оголошення інтерфейсів&lt;br /&gt;
    interface InterfaceOne&lt;br /&gt;
    {&lt;br /&gt;
        function SomeFunctionOne();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    interface InterfaceTwo&lt;br /&gt;
    {&lt;br /&gt;
        function SomeFunctionTwo();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
     // оголошення класу на основі інтерфейсів&lt;br /&gt;
    class SomeClass implements InterfaceOne, InterfaceTwo&lt;br /&gt;
    {&lt;br /&gt;
        public function SomeFunctionOne()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'SomeFunctionOne()';&lt;br /&gt;
        }&lt;br /&gt;
        public function SomeFunctionTwo()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'SomeFunctionTwo()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $object = new SomeClass;&lt;br /&gt;
    $object-&amp;gt;SomeFunctionOne(); // Виводить 'SomeFunctionOne()'&lt;br /&gt;
    $object-&amp;gt;SomeFunctionTwo(); // Виводить 'SomeFunctionTwo()'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Фінальні методи і класи. ==&lt;br /&gt;
&lt;br /&gt;
В '''PHP 5''' є можливість задати таку властивість класу і методу як фінальний (final). На основі фінальних класів неможливо створити класи нащадки. Також не можна перевизначити фінальний метод в класах нащадках.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    final class FinalClass&lt;br /&gt;
    {&lt;br /&gt;
 &lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class ClassWithFinalMethod&lt;br /&gt;
    {&lt;br /&gt;
        final public function FinalFunction()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'FinalFunction()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // наступне оголошення класу викликає помилку&lt;br /&gt;
    class SomeClass1 extends FinalClass&lt;br /&gt;
    {&lt;br /&gt;
        // опис класу&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // створюємо клас на основі класу з фінальним методом&lt;br /&gt;
    class SomeClass1 extends ClassWithFinalMethod&lt;br /&gt;
    {&lt;br /&gt;
    // наступне перевизначення методі викликає помилку&lt;br /&gt;
        public function FinalFunction()&lt;br /&gt;
        {&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Обробка винятків (помилок). ==&lt;br /&gt;
&lt;br /&gt;
Найцікавішим нововведенням в '''PHP 5''' є  методи для обробки винятків. Для цього використовуються конструкції  try/catch/throw.&lt;br /&gt;
&lt;br /&gt;
Розглянемо простий приклад використання цих методів:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    try {&lt;br /&gt;
            // відкриваємо файл для читання&lt;br /&gt;
            $fp = @fopen(&amp;quot;somefile.txt&amp;quot;, &amp;quot;r&amp;quot;);&lt;br /&gt;
            // якщо файл відсутній, створюємо виключення&lt;br /&gt;
            if (!$someFile)&lt;br /&gt;
                throw new Exception(&amp;quot; Помилка відкриття файлу!&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
            fclose($someFile);&lt;br /&gt;
        }&lt;br /&gt;
        catch&lt;br /&gt;
        (Exception $exception)&lt;br /&gt;
        {&lt;br /&gt;
            // метод $exception-&amp;gt;getLine() повертає номер рядка даного скрипта, в якому виникла помилка&lt;br /&gt;
            echo &amp;quot;Помилка в рядку &amp;quot;, $exception-&amp;gt;getLine();&lt;br /&gt;
            echo $exception-&amp;gt;getMessage(); // Выводит &amp;quot;Помилка відкриття файлу!&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ключове слово ''instanceof''.&lt;br /&gt;
Метод ''instanceof'' дозволяє визначити походження об'єкта, його приналежність до певного класу, або чи є він нащадком якогось об'єкта. Також за допомогою  instanceof можна визначити чи об'єкт екземпляром класу, створеного на основі певного інтерфейсу.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    interface SomeInterfaceOne { }&lt;br /&gt;
    interface SomeInterfaceTwo { }&lt;br /&gt;
    class SomeClassTypeOne { }&lt;br /&gt;
    class SomeClassTypeTwo extends SomeClassTypeOne {}&lt;br /&gt;
    class SomeClassTypeThree implements SomeInterfaceOne, SomeInterfaceTwo {}&lt;br /&gt;
 &lt;br /&gt;
    $objOne = new SomeClassTypeOne;&lt;br /&gt;
    $objTwo = new SomeClassTypeTwo;&lt;br /&gt;
    $objThree = new SomeClassTypeThree;&lt;br /&gt;
    $clonedObj = clone $objThree;&lt;br /&gt;
&lt;br /&gt;
    // наступний блок виводить: об'єкт $objOne належить до класу SomeClassTypeOne&lt;br /&gt;
    if($objOne instanceof SomeClassTypeOne)&lt;br /&gt;
        echo 'об\'єкт $objOne належить до класу SomeClassTypeOne';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objTwo належить до класу SomeClassTypeTwo&lt;br /&gt;
    if($objTwo instanceof SomeClassTypeTwo)&lt;br /&gt;
        echo 'об\'єкт $objTwo належить до класу SomeClassTypeTwo';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objThree належить до класу SomeClassTypeThree&lt;br /&gt;
    if($objThree instanceof SomeClassTypeThree)&lt;br /&gt;
        echo 'об\'єкт $objThree належить до класу SomeClassTypeThree';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objTwo є екземпляром класу створеного на основі класу SomeClassTypeOne&lt;br /&gt;
    if($objTwo instanceof SomeClassTypeOne)&lt;br /&gt;
        echo 'об\'єкт $objTwo є екземпляром класу створеного на основі класу SomeClassTypeOne';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceOne&lt;br /&gt;
    if($objThree instanceof SomeInterfaceOne)&lt;br /&gt;
        echo 'об\'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceOne';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceTwo   &lt;br /&gt;
    if($objThree instanceof SomeInterfaceTwo)&lt;br /&gt;
        echo 'об\'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceTwo';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкта $clonedObj створений на основі об'єкту $objThree   &lt;br /&gt;
    if($clonedObj instanceof $objThree)&lt;br /&gt;
        echo 'об\'єкта $clonedObj створений на основі об\'єкту $objThree';&lt;br /&gt;
        ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Функція __autoload() ==&lt;br /&gt;
&lt;br /&gt;
Функція ''__autoload()'' викликається в випадку коли створюється об'єкт на основі неіснуючого або неописаного в даному конкретному файлі з кодом класу&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    function __autoload($class)&lt;br /&gt;
    {&lt;br /&gt;
        echo &amp;quot;спроба створити об'єкт невизначеного класу &amp;quot;, $class;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // спроба створити об'єкт невизначеного класу MyClass&lt;br /&gt;
    // Fatal error: Class 'MyClass' not found in C:\wamp\www\test.php on line 5&lt;br /&gt;
    $someObj = new SomeWrongClass;&lt;br /&gt;
 &lt;br /&gt;
    // наступна стрічка трохи практичніша&lt;br /&gt;
    // (екрануємо створення об'єту символом &amp;quot;@&amp;quot;)&lt;br /&gt;
    // вона виводить:&lt;br /&gt;
    // спроба створити об'єкт невизначеного класу MyClass&lt;br /&gt;
    $someObj = @new SomeWrongClass;&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Перевантаження доступу до властивостей об'єкту. ==&lt;br /&gt;
&lt;br /&gt;
Методи доступу ''__get()'' і ''__set()'' дозволяють динамічно визначати властивості об'єктів. ''__get()'' в якості параметра отримує ім'я властивості, а  ''__set()'' окрім імені ще і нове значення властивості, яке відповідно і присвоює.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        private $classPropertys;&lt;br /&gt;
        function __set($name, $value)&lt;br /&gt;
        {&lt;br /&gt;
            echo &amp;quot;__set: присвоювання властивості $name = $value&amp;quot;;&lt;br /&gt;
            $this-&amp;gt;classPropertys[$name]=$value;&lt;br /&gt;
        }&lt;br /&gt;
   &lt;br /&gt;
        function __get($name)&lt;br /&gt;
        {&lt;br /&gt;
            echo &amp;quot;__get: читання властивості $name: &amp;quot;;&lt;br /&gt;
            echo $this-&amp;gt;classPropertys[$name];&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    $obj = new SomeClass;&lt;br /&gt;
    $obj-&amp;gt;name = 'New Value'; // Виводить &amp;quot;__set: присвоювання властивості name=New Value&amp;quot;&lt;br /&gt;
    $value = $obj-&amp;gt;name; // Виводить &amp;quot;__get: читання властивості name: New Value&amp;quot;&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Перевантаження викликів методів класу. ==&lt;br /&gt;
&lt;br /&gt;
Якщо метод ''__call()'' описаний в певному класі, тоді він автоматично переловлює виклики до неіснуючих методів цього класу. В якості параметрів він отримує ім'я і параметри методу що викликається.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        function __call($name, $params)&lt;br /&gt;
        {&lt;br /&gt;
            echo &amp;quot;Помилка: викликано неіснуючий метод $name з параметром[ами]: &amp;quot;;&lt;br /&gt;
            foreach($params as $val)&lt;br /&gt;
            {&lt;br /&gt;
                echo $val.' | ';&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    $obj = new SomeClass;&lt;br /&gt;
    $obj-&amp;gt;WrongMethodOne(1, 2, 'param'); // Виводить: 'Помилка: викликано неіснуючий метод&lt;br /&gt;
                                    // WrongMethodOne з параметром[ами]: 1 | 2 | param |'&lt;br /&gt;
    $obj-&amp;gt;WrongMethodTwo(123); // Виводить: 'Помилка: викликано неіснуючий метод WrongMethodOne з параметром[ами]: 123 |'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Інтернет-програмування|*]]&lt;br /&gt;
&lt;br /&gt;
[[category:Навчальні проекти]]&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:%D0%9E%D0%9E%D0%9F_%D0%B2_PHP</id>
		<title>Обговорення:ООП в PHP</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%B1%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D0%B5%D0%BD%D0%BD%D1%8F:%D0%9E%D0%9E%D0%9F_%D0%B2_PHP"/>
				<updated>2010-04-22T09:32:17Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Гарно написана стаття. Всі твердження доповнені та цікаво описані. Один недолік - стаття занадто велика як для одного листа. Було б непогано її розбити на кілька частин з внутрішніми посиланнями.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''- Зверніть увагу на зміст.'''&lt;br /&gt;
&lt;br /&gt;
[[Користувач:Tkanoff|Tkanoff]] 09:32, 22 квітня 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%9E%D0%9F_%D0%B2_PHP</id>
		<title>ООП в PHP</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%9E%D0%9F_%D0%B2_PHP"/>
				<updated>2010-04-22T09:31:35Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: /* Перевантаження викликів методів класу. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В програмуванні на '''PHP''' в основному використовуються такі парадигми програмування як '''процедурне''' і '''об'єктно-орієнтоване''' програмування.&lt;br /&gt;
&lt;br /&gt;
''Розглянемо ці парадигми детальніше.''&lt;br /&gt;
&lt;br /&gt;
== '''Процедурне програмування.''' ==&lt;br /&gt;
&lt;br /&gt;
Робота цієї концепції заснована на виклику так званих процедур (методи, функції, ...).  Кожна процедура містить певну логіку для виконання тих чи інших операцій і може бути викликана з будь-якого місця програми.  &lt;br /&gt;
&lt;br /&gt;
== '''Об'єктно-орієнтовне програмування (ООП).''' ==&lt;br /&gt;
&lt;br /&gt;
В даній парадигмі основою є певний об'єкт чи сукупність об'єктів, їхні властивості, методи і події. Власне з появою ООП і з'явилися такі терміни як '''клас''', '''наслідування''', '''поліморфізм''', '''інкапсуляція'''.&lt;br /&gt;
&lt;br /&gt;
Якщо розглядати поняття об'єкту концептуально, то об'єкт є лише екземпляром певного класу об'єктів.&lt;br /&gt;
&lt;br /&gt;
Об'єкти представляють собою  часткову інформацію про певну сутність, а власне певну модель, що адекватна завданню що треба вирішити. Цей варіант представлення називається абстракція даних. При такому представленні з об'єктом працювати набагато простіше, ніж з низькорівневим представленнями з описом всіх  можливих властивостей і методів.&lt;br /&gt;
&lt;br /&gt;
'''Кожен об'єкт має свій певний тип (клас), що об'єднає в собі наступні елементи:'''&lt;br /&gt;
&lt;br /&gt;
   1. '''Властивості''' – певні параметри і характеристики об'єкту&lt;br /&gt;
   2. '''Методи''' – дії, що можна виконувати над даним об'єктом, чи які може виконувати він сам&lt;br /&gt;
   3. '''Події''' – повідомлення що виникають при зміні стану об'єкта&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ООП функціонує за наступними принципами:'''&lt;br /&gt;
&lt;br /&gt;
   1. '''Наслідування''' – це можливість породжувати один клас від іншого, при чому всі методи і властивості батьківського класу передаються дочірньому, дочірній клас в свою чергу може набувати нових методів і властивостей, яких не було в батьківському і також передавати їх в похідні від себе класи.&lt;br /&gt;
   2. '''Поліморфізм''' – це можливість дочірнього класу змінювати реалізацію тих чи інших дій батьківського класу.&lt;br /&gt;
   3. '''Інкапсуляція''' – це властивість об'єкта мати спеціальний інтерфейс (певний метод), через який і здійснюється взаємодія зовнішнього середовища з внутрішніми методами класу. При чому зовнішнє середовище може і не підозрювати про структуру і логіку  внутрішніх методів.&lt;br /&gt;
&lt;br /&gt;
Якщо розглядати практичне застосування парадигм програмування стосовно '''PHP''', то в попередніх до '''PHP 5''' версіях використовується в основному процедурне програмування, так як об'єктна схема там вимальована достатньо умовно (тільки для виділення окремих сутностей, їх методів і властивостей в певні класи). Вже в '''5-й''' версії '''PHP''' механізм взаємодії з об'єктами зазнав еволюційних змін.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Області видимості методів і властивостей класів. ==&lt;br /&gt;
&lt;br /&gt;
В '''PHP 5''' введені специфікатори доступу до методів і властивостей класів:&lt;br /&gt;
&lt;br /&gt;
    * '''public''' – доступний без обмежень&lt;br /&gt;
    * '''protected''' – тільки в середині класу, в якому вони оголошені і похідних від нього класах&lt;br /&gt;
    * '''private''' – тільки в середині класу, в якому вони оголошені&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
По замовчуванню виставляється тип доступу ''public''.&lt;br /&gt;
&lt;br /&gt;
Розглянемо приклад з методами і властивостями різних типів доступності.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
        // оголошуємо основний клас&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        private $privateName = 'Private Name';&lt;br /&gt;
        protected $protectedName = 'Protected Name';&lt;br /&gt;
        public $publicName = 'Public Name';&lt;br /&gt;
 &lt;br /&gt;
    private function PrivateFunction()&lt;br /&gt;
    {&lt;br /&gt;
        echo 'PrivateFunction()';&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    protected function ProtectedFunction()&lt;br /&gt;
    {&lt;br /&gt;
        echo 'ProtectedFunction()';&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function PublicFunction()&lt;br /&gt;
    {&lt;br /&gt;
        echo 'PublicFunction()';&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function GetPrivate()&lt;br /&gt;
    {&lt;br /&gt;
        echo $this-&amp;gt;privateName;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function GetProtected()&lt;br /&gt;
    {&lt;br /&gt;
        echo $this-&amp;gt;protectedName;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function GetPublic()&lt;br /&gt;
    {&lt;br /&gt;
        echo $this-&amp;gt;publicName;&lt;br /&gt;
     }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // оголошуємо похідний клас від SomeClass&lt;br /&gt;
    class SomeClass1 extends SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        public function GetPrivateFromParent()&lt;br /&gt;
        {&lt;br /&gt;
            echo $this-&amp;gt;privateName;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $someObj1 = new SomeClass;&lt;br /&gt;
    $someObj2 = new SomeClass1;&lt;br /&gt;
&lt;br /&gt;
    // Доступ до private методів і властивостей&lt;br /&gt;
    echo $someObj1-&amp;gt;privateName; //  Виводить помилку&lt;br /&gt;
    echo $someObj2-&amp;gt;privateName; //  Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;PrivateFunction(); //  Виводить помилку&lt;br /&gt;
    $someObj2-&amp;gt;PrivateFunction(); //  Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;GetPrivate(); //  Виводится 'Private Name'&lt;br /&gt;
    $someObj2-&amp;gt;GetPrivate(); //  Виводится 'Private Name'*/&lt;br /&gt;
    $someObj2-&amp;gt;GetPrivateFromParent(); //  Нічого не виводиться&lt;br /&gt;
&lt;br /&gt;
    // Доступ до protected методів і властивостей&lt;br /&gt;
    echo $someObj1-&amp;gt;protectedName; // Виводить помилку&lt;br /&gt;
    echo $someObj2-&amp;gt;protectedName; // Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;ProtectedFunction(); // Виводить помилку&lt;br /&gt;
    $someObj2-&amp;gt;ProtectedFunction(); // Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;GetProtected(); // Виводится 'Protected Name'&lt;br /&gt;
    $someObj2-&amp;gt;GetProtected(); // Виводится 'Protected Name'&lt;br /&gt;
&lt;br /&gt;
    // Доступ до public методів і властивостей&lt;br /&gt;
    echo $someObj1-&amp;gt;publicName; // Виводиться 'Public Name'&lt;br /&gt;
    echo $someObj2-&amp;gt;publicName; // Виводиться 'Public Name'&lt;br /&gt;
    $someObj1-&amp;gt;PublicFunction(); // Виводиться 'PublicFunction()'&lt;br /&gt;
    $someObj2-&amp;gt;PublicFunction(); // Виводиться 'PublicFunction()'&lt;br /&gt;
    $someObj1-&amp;gt;GetPublic(); // Виводиться 'Public Name'&lt;br /&gt;
    $someObj2-&amp;gt;GetPublic(); // Виводиться 'Public Name'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Є ще також статичні (''static'') методи і властивості. Їхньою особливістю є те, що вони не належать певному об'єктові, вони єдині для цілого класу, і можуть викликатися без створення об'єкту. Зміна статичної властивості в одному з об'єктів класу призводить до його зміни для всіх об'єктів цього класу.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
      // оголошуємо основний клас&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        static $staticVar = 'Static Variable';&lt;br /&gt;
 &lt;br /&gt;
        static function StaticFunction()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'StaticFunction()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    echo SomeClass::StaticFunction(); // Виводить StaticFunction()&lt;br /&gt;
    echo SomeClass::$staticVar; // Виводить Static Variable&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Константи класу ==&lt;br /&gt;
&lt;br /&gt;
При описі класу в '''PHP 5''' можна задавати властивості-константи (ключове слово '''const'''). Викликати константи можна і без створення об'єкту на основі класу, в якому оголошені константи.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
          const SOME_CONSTANT = &amp;quot;SOME CONSTANT&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    echo SomeClass::SOME_CONSTANT; // Виводить &amp;quot;SOME CONSTANT&amp;quot;&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Конструктори и деструктори. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Конструктор ('''__construct()''') і деструктор ('''__destruct()''') це методи що викликаються автоматично при створенні і знищенні об'єкту відповідно:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        function __construct()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'Create object';&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        function __destruct()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'Destroy object';&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
    $someObj = new SomeClass; // Виводиться Create object&lt;br /&gt;
    unset($someObj); // Виводиться Destroy object&lt;br /&gt;
    &lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Абстрактні методи і класи. ==&lt;br /&gt;
&lt;br /&gt;
Абстрактні (''abstract'') методи і класи тільки оголошуються, клас який містить абстрактні методи повинен оголоситися як абстрактний. На основі абстрактного класу можна тільки створювати інші класи, а вже від них об'єкти. Абстрактний клас може містити і звичайні (не абстрактні) елементи.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    abstract class SomeAbstractClass&lt;br /&gt;
    {&lt;br /&gt;
        // оголошення абстрактної функції&lt;br /&gt;
        abstract public function abstractFunction();&lt;br /&gt;
        // оголошення неабстрактної функції&lt;br /&gt;
        public function GeneralFunction()&lt;br /&gt;
        {&lt;br /&gt;
 &lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
    class SomeClass extends SomeAbstractClass&lt;br /&gt;
    {&lt;br /&gt;
        // перевантаження абстрактного методу&lt;br /&gt;
        public function abstractFunction()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'abstractFunction()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $someObj = new SomeAbstractClass; // Помилка створення об'єкта&lt;br /&gt;
    $someObj1 = new SomeClass;&lt;br /&gt;
    $someObj1-&amp;gt;abstrFunc(); // Виводить 'abstractFunction()'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Інтерфейси. ==&lt;br /&gt;
&lt;br /&gt;
В '''PHP 5''' немає множинного наслідування, тобто один клас не може бути створений на основі кількох інших класів. Але клас може бути створений на основі кількох інтерфейсів. Інтерфейс – це фактично абстрактний клас, який містить тільки абстрактні методи і не містить ніяких властивостей.&lt;br /&gt;
&lt;br /&gt;
Оголошуються інтерфейси з використанням ключового слова ''interface'', а всі функції оголошуються стандартно, з використанням ключового слова ''function''.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    // оголошення інтерфейсів&lt;br /&gt;
    interface InterfaceOne&lt;br /&gt;
    {&lt;br /&gt;
        function SomeFunctionOne();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    interface InterfaceTwo&lt;br /&gt;
    {&lt;br /&gt;
        function SomeFunctionTwo();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
     // оголошення класу на основі інтерфейсів&lt;br /&gt;
    class SomeClass implements InterfaceOne, InterfaceTwo&lt;br /&gt;
    {&lt;br /&gt;
        public function SomeFunctionOne()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'SomeFunctionOne()';&lt;br /&gt;
        }&lt;br /&gt;
        public function SomeFunctionTwo()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'SomeFunctionTwo()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $object = new SomeClass;&lt;br /&gt;
    $object-&amp;gt;SomeFunctionOne(); // Виводить 'SomeFunctionOne()'&lt;br /&gt;
    $object-&amp;gt;SomeFunctionTwo(); // Виводить 'SomeFunctionTwo()'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Фінальні методи і класи. ==&lt;br /&gt;
&lt;br /&gt;
В '''PHP 5''' є можливість задати таку властивість класу і методу як фінальний (final). На основі фінальних класів неможливо створити класи нащадки. Також не можна перевизначити фінальний метод в класах нащадках.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    final class FinalClass&lt;br /&gt;
    {&lt;br /&gt;
 &lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class ClassWithFinalMethod&lt;br /&gt;
    {&lt;br /&gt;
        final public function FinalFunction()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'FinalFunction()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // наступне оголошення класу викликає помилку&lt;br /&gt;
    class SomeClass1 extends FinalClass&lt;br /&gt;
    {&lt;br /&gt;
        // опис класу&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // створюємо клас на основі класу з фінальним методом&lt;br /&gt;
    class SomeClass1 extends ClassWithFinalMethod&lt;br /&gt;
    {&lt;br /&gt;
    // наступне перевизначення методі викликає помилку&lt;br /&gt;
        public function FinalFunction()&lt;br /&gt;
        {&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Обробка винятків (помилок). ==&lt;br /&gt;
&lt;br /&gt;
Найцікавішим нововведенням в '''PHP 5''' є  методи для обробки винятків. Для цього використовуються конструкції  try/catch/throw.&lt;br /&gt;
&lt;br /&gt;
Розглянемо простий приклад використання цих методів:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    try {&lt;br /&gt;
            // відкриваємо файл для читання&lt;br /&gt;
            $fp = @fopen(&amp;quot;somefile.txt&amp;quot;, &amp;quot;r&amp;quot;);&lt;br /&gt;
            // якщо файл відсутній, створюємо виключення&lt;br /&gt;
            if (!$someFile)&lt;br /&gt;
                throw new Exception(&amp;quot; Помилка відкриття файлу!&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
            fclose($someFile);&lt;br /&gt;
        }&lt;br /&gt;
        catch&lt;br /&gt;
        (Exception $exception)&lt;br /&gt;
        {&lt;br /&gt;
            // метод $exception-&amp;gt;getLine() повертає номер рядка даного скрипта, в якому виникла помилка&lt;br /&gt;
            echo &amp;quot;Помилка в рядку &amp;quot;, $exception-&amp;gt;getLine();&lt;br /&gt;
            echo $exception-&amp;gt;getMessage(); // Выводит &amp;quot;Помилка відкриття файлу!&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ключове слово ''instanceof''.&lt;br /&gt;
Метод ''instanceof'' дозволяє визначити походження об'єкта, його приналежність до певного класу, або чи є він нащадком якогось об'єкта. Також за допомогою  instanceof можна визначити чи об'єкт екземпляром класу, створеного на основі певного інтерфейсу.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    interface SomeInterfaceOne { }&lt;br /&gt;
    interface SomeInterfaceTwo { }&lt;br /&gt;
    class SomeClassTypeOne { }&lt;br /&gt;
    class SomeClassTypeTwo extends SomeClassTypeOne {}&lt;br /&gt;
    class SomeClassTypeThree implements SomeInterfaceOne, SomeInterfaceTwo {}&lt;br /&gt;
 &lt;br /&gt;
    $objOne = new SomeClassTypeOne;&lt;br /&gt;
    $objTwo = new SomeClassTypeTwo;&lt;br /&gt;
    $objThree = new SomeClassTypeThree;&lt;br /&gt;
    $clonedObj = clone $objThree;&lt;br /&gt;
&lt;br /&gt;
    // наступний блок виводить: об'єкт $objOne належить до класу SomeClassTypeOne&lt;br /&gt;
    if($objOne instanceof SomeClassTypeOne)&lt;br /&gt;
        echo 'об\'єкт $objOne належить до класу SomeClassTypeOne';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objTwo належить до класу SomeClassTypeTwo&lt;br /&gt;
    if($objTwo instanceof SomeClassTypeTwo)&lt;br /&gt;
        echo 'об\'єкт $objTwo належить до класу SomeClassTypeTwo';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objThree належить до класу SomeClassTypeThree&lt;br /&gt;
    if($objThree instanceof SomeClassTypeThree)&lt;br /&gt;
        echo 'об\'єкт $objThree належить до класу SomeClassTypeThree';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objTwo є екземпляром класу створеного на основі класу SomeClassTypeOne&lt;br /&gt;
    if($objTwo instanceof SomeClassTypeOne)&lt;br /&gt;
        echo 'об\'єкт $objTwo є екземпляром класу створеного на основі класу SomeClassTypeOne';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceOne&lt;br /&gt;
    if($objThree instanceof SomeInterfaceOne)&lt;br /&gt;
        echo 'об\'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceOne';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceTwo   &lt;br /&gt;
    if($objThree instanceof SomeInterfaceTwo)&lt;br /&gt;
        echo 'об\'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceTwo';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкта $clonedObj створений на основі об'єкту $objThree   &lt;br /&gt;
    if($clonedObj instanceof $objThree)&lt;br /&gt;
        echo 'об\'єкта $clonedObj створений на основі об\'єкту $objThree';&lt;br /&gt;
        ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Функція __autoload() ==&lt;br /&gt;
&lt;br /&gt;
Функція ''__autoload()'' викликається в випадку коли створюється об'єкт на основі неіснуючого або неописаного в даному конкретному файлі з кодом класу&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    function __autoload($class)&lt;br /&gt;
    {&lt;br /&gt;
        echo &amp;quot;спроба створити об'єкт невизначеного класу &amp;quot;, $class;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // спроба створити об'єкт невизначеного класу MyClass&lt;br /&gt;
    // Fatal error: Class 'MyClass' not found in C:\wamp\www\test.php on line 5&lt;br /&gt;
    $someObj = new SomeWrongClass;&lt;br /&gt;
 &lt;br /&gt;
    // наступна стрічка трохи практичніша&lt;br /&gt;
    // (екрануємо створення об'єту символом &amp;quot;@&amp;quot;)&lt;br /&gt;
    // вона виводить:&lt;br /&gt;
    // спроба створити об'єкт невизначеного класу MyClass&lt;br /&gt;
    $someObj = @new SomeWrongClass;&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Перевантаження доступу до властивостей об'єкту. ==&lt;br /&gt;
&lt;br /&gt;
Методи доступу ''__get()'' і ''__set()'' дозволяють динамічно визначати властивості об'єктів. ''__get()'' в якості параметра отримує ім'я властивості, а  ''__set()'' окрім імені ще і нове значення властивості, яке відповідно і присвоює.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        private $classPropertys;&lt;br /&gt;
        function __set($name, $value)&lt;br /&gt;
        {&lt;br /&gt;
            echo &amp;quot;__set: присвоювання властивості $name = $value&amp;quot;;&lt;br /&gt;
            $this-&amp;gt;classPropertys[$name]=$value;&lt;br /&gt;
        }&lt;br /&gt;
   &lt;br /&gt;
        function __get($name)&lt;br /&gt;
        {&lt;br /&gt;
            echo &amp;quot;__get: читання властивості $name: &amp;quot;;&lt;br /&gt;
            echo $this-&amp;gt;classPropertys[$name];&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    $obj = new SomeClass;&lt;br /&gt;
    $obj-&amp;gt;name = 'New Value'; // Виводить &amp;quot;__set: присвоювання властивості name=New Value&amp;quot;&lt;br /&gt;
    $value = $obj-&amp;gt;name; // Виводить &amp;quot;__get: читання властивості name: New Value&amp;quot;&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Перевантаження викликів методів класу. ==&lt;br /&gt;
&lt;br /&gt;
Якщо метод ''__call()'' описаний в певному класі, тоді він автоматично переловлює виклики до неіснуючих методів цього класу. В якості параметрів він отримує ім'я і параметри методу що викликається.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        function __call($name, $params)&lt;br /&gt;
        {&lt;br /&gt;
            echo &amp;quot;Помилка: викликано неіснуючий метод $name з параметром[ами]: &amp;quot;;&lt;br /&gt;
            foreach($params as $val)&lt;br /&gt;
            {&lt;br /&gt;
                echo $val.' | ';&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    $obj = new SomeClass;&lt;br /&gt;
    $obj-&amp;gt;WrongMethodOne(1, 2, 'param'); // Виводить: 'Помилка: викликано неіснуючий метод&lt;br /&gt;
                                    // WrongMethodOne з параметром[ами]: 1 | 2 | param |'&lt;br /&gt;
    $obj-&amp;gt;WrongMethodTwo(123); // Виводить: 'Помилка: викликано неіснуючий метод WrongMethodOne з параметром[ами]: 123 |'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Інтернет-програмування|*]]&lt;br /&gt;
&lt;br /&gt;
[[category:Навчальні проекти]]&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%9E%D0%9F_%D0%B2_PHP</id>
		<title>ООП в PHP</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%9E%D0%9F_%D0%B2_PHP"/>
				<updated>2010-04-22T09:31:10Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В програмуванні на '''PHP''' в основному використовуються такі парадигми програмування як '''процедурне''' і '''об'єктно-орієнтоване''' програмування.&lt;br /&gt;
&lt;br /&gt;
''Розглянемо ці парадигми детальніше.''&lt;br /&gt;
&lt;br /&gt;
== '''Процедурне програмування.''' ==&lt;br /&gt;
&lt;br /&gt;
Робота цієї концепції заснована на виклику так званих процедур (методи, функції, ...).  Кожна процедура містить певну логіку для виконання тих чи інших операцій і може бути викликана з будь-якого місця програми.  &lt;br /&gt;
&lt;br /&gt;
== '''Об'єктно-орієнтовне програмування (ООП).''' ==&lt;br /&gt;
&lt;br /&gt;
В даній парадигмі основою є певний об'єкт чи сукупність об'єктів, їхні властивості, методи і події. Власне з появою ООП і з'явилися такі терміни як '''клас''', '''наслідування''', '''поліморфізм''', '''інкапсуляція'''.&lt;br /&gt;
&lt;br /&gt;
Якщо розглядати поняття об'єкту концептуально, то об'єкт є лише екземпляром певного класу об'єктів.&lt;br /&gt;
&lt;br /&gt;
Об'єкти представляють собою  часткову інформацію про певну сутність, а власне певну модель, що адекватна завданню що треба вирішити. Цей варіант представлення називається абстракція даних. При такому представленні з об'єктом працювати набагато простіше, ніж з низькорівневим представленнями з описом всіх  можливих властивостей і методів.&lt;br /&gt;
&lt;br /&gt;
'''Кожен об'єкт має свій певний тип (клас), що об'єднає в собі наступні елементи:'''&lt;br /&gt;
&lt;br /&gt;
   1. '''Властивості''' – певні параметри і характеристики об'єкту&lt;br /&gt;
   2. '''Методи''' – дії, що можна виконувати над даним об'єктом, чи які може виконувати він сам&lt;br /&gt;
   3. '''Події''' – повідомлення що виникають при зміні стану об'єкта&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ООП функціонує за наступними принципами:'''&lt;br /&gt;
&lt;br /&gt;
   1. '''Наслідування''' – це можливість породжувати один клас від іншого, при чому всі методи і властивості батьківського класу передаються дочірньому, дочірній клас в свою чергу може набувати нових методів і властивостей, яких не було в батьківському і також передавати їх в похідні від себе класи.&lt;br /&gt;
   2. '''Поліморфізм''' – це можливість дочірнього класу змінювати реалізацію тих чи інших дій батьківського класу.&lt;br /&gt;
   3. '''Інкапсуляція''' – це властивість об'єкта мати спеціальний інтерфейс (певний метод), через який і здійснюється взаємодія зовнішнього середовища з внутрішніми методами класу. При чому зовнішнє середовище може і не підозрювати про структуру і логіку  внутрішніх методів.&lt;br /&gt;
&lt;br /&gt;
Якщо розглядати практичне застосування парадигм програмування стосовно '''PHP''', то в попередніх до '''PHP 5''' версіях використовується в основному процедурне програмування, так як об'єктна схема там вимальована достатньо умовно (тільки для виділення окремих сутностей, їх методів і властивостей в певні класи). Вже в '''5-й''' версії '''PHP''' механізм взаємодії з об'єктами зазнав еволюційних змін.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Області видимості методів і властивостей класів. ==&lt;br /&gt;
&lt;br /&gt;
В '''PHP 5''' введені специфікатори доступу до методів і властивостей класів:&lt;br /&gt;
&lt;br /&gt;
    * '''public''' – доступний без обмежень&lt;br /&gt;
    * '''protected''' – тільки в середині класу, в якому вони оголошені і похідних від нього класах&lt;br /&gt;
    * '''private''' – тільки в середині класу, в якому вони оголошені&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
По замовчуванню виставляється тип доступу ''public''.&lt;br /&gt;
&lt;br /&gt;
Розглянемо приклад з методами і властивостями різних типів доступності.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
        // оголошуємо основний клас&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        private $privateName = 'Private Name';&lt;br /&gt;
        protected $protectedName = 'Protected Name';&lt;br /&gt;
        public $publicName = 'Public Name';&lt;br /&gt;
 &lt;br /&gt;
    private function PrivateFunction()&lt;br /&gt;
    {&lt;br /&gt;
        echo 'PrivateFunction()';&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    protected function ProtectedFunction()&lt;br /&gt;
    {&lt;br /&gt;
        echo 'ProtectedFunction()';&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function PublicFunction()&lt;br /&gt;
    {&lt;br /&gt;
        echo 'PublicFunction()';&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function GetPrivate()&lt;br /&gt;
    {&lt;br /&gt;
        echo $this-&amp;gt;privateName;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function GetProtected()&lt;br /&gt;
    {&lt;br /&gt;
        echo $this-&amp;gt;protectedName;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function GetPublic()&lt;br /&gt;
    {&lt;br /&gt;
        echo $this-&amp;gt;publicName;&lt;br /&gt;
     }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // оголошуємо похідний клас від SomeClass&lt;br /&gt;
    class SomeClass1 extends SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        public function GetPrivateFromParent()&lt;br /&gt;
        {&lt;br /&gt;
            echo $this-&amp;gt;privateName;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $someObj1 = new SomeClass;&lt;br /&gt;
    $someObj2 = new SomeClass1;&lt;br /&gt;
&lt;br /&gt;
    // Доступ до private методів і властивостей&lt;br /&gt;
    echo $someObj1-&amp;gt;privateName; //  Виводить помилку&lt;br /&gt;
    echo $someObj2-&amp;gt;privateName; //  Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;PrivateFunction(); //  Виводить помилку&lt;br /&gt;
    $someObj2-&amp;gt;PrivateFunction(); //  Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;GetPrivate(); //  Виводится 'Private Name'&lt;br /&gt;
    $someObj2-&amp;gt;GetPrivate(); //  Виводится 'Private Name'*/&lt;br /&gt;
    $someObj2-&amp;gt;GetPrivateFromParent(); //  Нічого не виводиться&lt;br /&gt;
&lt;br /&gt;
    // Доступ до protected методів і властивостей&lt;br /&gt;
    echo $someObj1-&amp;gt;protectedName; // Виводить помилку&lt;br /&gt;
    echo $someObj2-&amp;gt;protectedName; // Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;ProtectedFunction(); // Виводить помилку&lt;br /&gt;
    $someObj2-&amp;gt;ProtectedFunction(); // Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;GetProtected(); // Виводится 'Protected Name'&lt;br /&gt;
    $someObj2-&amp;gt;GetProtected(); // Виводится 'Protected Name'&lt;br /&gt;
&lt;br /&gt;
    // Доступ до public методів і властивостей&lt;br /&gt;
    echo $someObj1-&amp;gt;publicName; // Виводиться 'Public Name'&lt;br /&gt;
    echo $someObj2-&amp;gt;publicName; // Виводиться 'Public Name'&lt;br /&gt;
    $someObj1-&amp;gt;PublicFunction(); // Виводиться 'PublicFunction()'&lt;br /&gt;
    $someObj2-&amp;gt;PublicFunction(); // Виводиться 'PublicFunction()'&lt;br /&gt;
    $someObj1-&amp;gt;GetPublic(); // Виводиться 'Public Name'&lt;br /&gt;
    $someObj2-&amp;gt;GetPublic(); // Виводиться 'Public Name'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Є ще також статичні (''static'') методи і властивості. Їхньою особливістю є те, що вони не належать певному об'єктові, вони єдині для цілого класу, і можуть викликатися без створення об'єкту. Зміна статичної властивості в одному з об'єктів класу призводить до його зміни для всіх об'єктів цього класу.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
      // оголошуємо основний клас&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        static $staticVar = 'Static Variable';&lt;br /&gt;
 &lt;br /&gt;
        static function StaticFunction()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'StaticFunction()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    echo SomeClass::StaticFunction(); // Виводить StaticFunction()&lt;br /&gt;
    echo SomeClass::$staticVar; // Виводить Static Variable&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Константи класу ==&lt;br /&gt;
&lt;br /&gt;
При описі класу в '''PHP 5''' можна задавати властивості-константи (ключове слово '''const'''). Викликати константи можна і без створення об'єкту на основі класу, в якому оголошені константи.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
          const SOME_CONSTANT = &amp;quot;SOME CONSTANT&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    echo SomeClass::SOME_CONSTANT; // Виводить &amp;quot;SOME CONSTANT&amp;quot;&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Конструктори и деструктори. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Конструктор ('''__construct()''') і деструктор ('''__destruct()''') це методи що викликаються автоматично при створенні і знищенні об'єкту відповідно:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        function __construct()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'Create object';&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        function __destruct()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'Destroy object';&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
    $someObj = new SomeClass; // Виводиться Create object&lt;br /&gt;
    unset($someObj); // Виводиться Destroy object&lt;br /&gt;
    &lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Абстрактні методи і класи. ==&lt;br /&gt;
&lt;br /&gt;
Абстрактні (''abstract'') методи і класи тільки оголошуються, клас який містить абстрактні методи повинен оголоситися як абстрактний. На основі абстрактного класу можна тільки створювати інші класи, а вже від них об'єкти. Абстрактний клас може містити і звичайні (не абстрактні) елементи.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    abstract class SomeAbstractClass&lt;br /&gt;
    {&lt;br /&gt;
        // оголошення абстрактної функції&lt;br /&gt;
        abstract public function abstractFunction();&lt;br /&gt;
        // оголошення неабстрактної функції&lt;br /&gt;
        public function GeneralFunction()&lt;br /&gt;
        {&lt;br /&gt;
 &lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
    class SomeClass extends SomeAbstractClass&lt;br /&gt;
    {&lt;br /&gt;
        // перевантаження абстрактного методу&lt;br /&gt;
        public function abstractFunction()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'abstractFunction()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $someObj = new SomeAbstractClass; // Помилка створення об'єкта&lt;br /&gt;
    $someObj1 = new SomeClass;&lt;br /&gt;
    $someObj1-&amp;gt;abstrFunc(); // Виводить 'abstractFunction()'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Інтерфейси. ==&lt;br /&gt;
&lt;br /&gt;
В '''PHP 5''' немає множинного наслідування, тобто один клас не може бути створений на основі кількох інших класів. Але клас може бути створений на основі кількох інтерфейсів. Інтерфейс – це фактично абстрактний клас, який містить тільки абстрактні методи і не містить ніяких властивостей.&lt;br /&gt;
&lt;br /&gt;
Оголошуються інтерфейси з використанням ключового слова ''interface'', а всі функції оголошуються стандартно, з використанням ключового слова ''function''.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    // оголошення інтерфейсів&lt;br /&gt;
    interface InterfaceOne&lt;br /&gt;
    {&lt;br /&gt;
        function SomeFunctionOne();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    interface InterfaceTwo&lt;br /&gt;
    {&lt;br /&gt;
        function SomeFunctionTwo();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
     // оголошення класу на основі інтерфейсів&lt;br /&gt;
    class SomeClass implements InterfaceOne, InterfaceTwo&lt;br /&gt;
    {&lt;br /&gt;
        public function SomeFunctionOne()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'SomeFunctionOne()';&lt;br /&gt;
        }&lt;br /&gt;
        public function SomeFunctionTwo()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'SomeFunctionTwo()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $object = new SomeClass;&lt;br /&gt;
    $object-&amp;gt;SomeFunctionOne(); // Виводить 'SomeFunctionOne()'&lt;br /&gt;
    $object-&amp;gt;SomeFunctionTwo(); // Виводить 'SomeFunctionTwo()'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Фінальні методи і класи. ==&lt;br /&gt;
&lt;br /&gt;
В '''PHP 5''' є можливість задати таку властивість класу і методу як фінальний (final). На основі фінальних класів неможливо створити класи нащадки. Також не можна перевизначити фінальний метод в класах нащадках.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    final class FinalClass&lt;br /&gt;
    {&lt;br /&gt;
 &lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class ClassWithFinalMethod&lt;br /&gt;
    {&lt;br /&gt;
        final public function FinalFunction()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'FinalFunction()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // наступне оголошення класу викликає помилку&lt;br /&gt;
    class SomeClass1 extends FinalClass&lt;br /&gt;
    {&lt;br /&gt;
        // опис класу&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // створюємо клас на основі класу з фінальним методом&lt;br /&gt;
    class SomeClass1 extends ClassWithFinalMethod&lt;br /&gt;
    {&lt;br /&gt;
    // наступне перевизначення методі викликає помилку&lt;br /&gt;
        public function FinalFunction()&lt;br /&gt;
        {&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Обробка винятків (помилок). ==&lt;br /&gt;
&lt;br /&gt;
Найцікавішим нововведенням в '''PHP 5''' є  методи для обробки винятків. Для цього використовуються конструкції  try/catch/throw.&lt;br /&gt;
&lt;br /&gt;
Розглянемо простий приклад використання цих методів:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    try {&lt;br /&gt;
            // відкриваємо файл для читання&lt;br /&gt;
            $fp = @fopen(&amp;quot;somefile.txt&amp;quot;, &amp;quot;r&amp;quot;);&lt;br /&gt;
            // якщо файл відсутній, створюємо виключення&lt;br /&gt;
            if (!$someFile)&lt;br /&gt;
                throw new Exception(&amp;quot; Помилка відкриття файлу!&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
            fclose($someFile);&lt;br /&gt;
        }&lt;br /&gt;
        catch&lt;br /&gt;
        (Exception $exception)&lt;br /&gt;
        {&lt;br /&gt;
            // метод $exception-&amp;gt;getLine() повертає номер рядка даного скрипта, в якому виникла помилка&lt;br /&gt;
            echo &amp;quot;Помилка в рядку &amp;quot;, $exception-&amp;gt;getLine();&lt;br /&gt;
            echo $exception-&amp;gt;getMessage(); // Выводит &amp;quot;Помилка відкриття файлу!&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ключове слово ''instanceof''.&lt;br /&gt;
Метод ''instanceof'' дозволяє визначити походження об'єкта, його приналежність до певного класу, або чи є він нащадком якогось об'єкта. Також за допомогою  instanceof можна визначити чи об'єкт екземпляром класу, створеного на основі певного інтерфейсу.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    interface SomeInterfaceOne { }&lt;br /&gt;
    interface SomeInterfaceTwo { }&lt;br /&gt;
    class SomeClassTypeOne { }&lt;br /&gt;
    class SomeClassTypeTwo extends SomeClassTypeOne {}&lt;br /&gt;
    class SomeClassTypeThree implements SomeInterfaceOne, SomeInterfaceTwo {}&lt;br /&gt;
 &lt;br /&gt;
    $objOne = new SomeClassTypeOne;&lt;br /&gt;
    $objTwo = new SomeClassTypeTwo;&lt;br /&gt;
    $objThree = new SomeClassTypeThree;&lt;br /&gt;
    $clonedObj = clone $objThree;&lt;br /&gt;
&lt;br /&gt;
    // наступний блок виводить: об'єкт $objOne належить до класу SomeClassTypeOne&lt;br /&gt;
    if($objOne instanceof SomeClassTypeOne)&lt;br /&gt;
        echo 'об\'єкт $objOne належить до класу SomeClassTypeOne';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objTwo належить до класу SomeClassTypeTwo&lt;br /&gt;
    if($objTwo instanceof SomeClassTypeTwo)&lt;br /&gt;
        echo 'об\'єкт $objTwo належить до класу SomeClassTypeTwo';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objThree належить до класу SomeClassTypeThree&lt;br /&gt;
    if($objThree instanceof SomeClassTypeThree)&lt;br /&gt;
        echo 'об\'єкт $objThree належить до класу SomeClassTypeThree';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objTwo є екземпляром класу створеного на основі класу SomeClassTypeOne&lt;br /&gt;
    if($objTwo instanceof SomeClassTypeOne)&lt;br /&gt;
        echo 'об\'єкт $objTwo є екземпляром класу створеного на основі класу SomeClassTypeOne';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceOne&lt;br /&gt;
    if($objThree instanceof SomeInterfaceOne)&lt;br /&gt;
        echo 'об\'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceOne';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceTwo   &lt;br /&gt;
    if($objThree instanceof SomeInterfaceTwo)&lt;br /&gt;
        echo 'об\'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceTwo';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкта $clonedObj створений на основі об'єкту $objThree   &lt;br /&gt;
    if($clonedObj instanceof $objThree)&lt;br /&gt;
        echo 'об\'єкта $clonedObj створений на основі об\'єкту $objThree';&lt;br /&gt;
        ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Функція __autoload() ==&lt;br /&gt;
&lt;br /&gt;
Функція ''__autoload()'' викликається в випадку коли створюється об'єкт на основі неіснуючого або неописаного в даному конкретному файлі з кодом класу&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    function __autoload($class)&lt;br /&gt;
    {&lt;br /&gt;
        echo &amp;quot;спроба створити об'єкт невизначеного класу &amp;quot;, $class;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // спроба створити об'єкт невизначеного класу MyClass&lt;br /&gt;
    // Fatal error: Class 'MyClass' not found in C:\wamp\www\test.php on line 5&lt;br /&gt;
    $someObj = new SomeWrongClass;&lt;br /&gt;
 &lt;br /&gt;
    // наступна стрічка трохи практичніша&lt;br /&gt;
    // (екрануємо створення об'єту символом &amp;quot;@&amp;quot;)&lt;br /&gt;
    // вона виводить:&lt;br /&gt;
    // спроба створити об'єкт невизначеного класу MyClass&lt;br /&gt;
    $someObj = @new SomeWrongClass;&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Перевантаження доступу до властивостей об'єкту. ==&lt;br /&gt;
&lt;br /&gt;
Методи доступу ''__get()'' і ''__set()'' дозволяють динамічно визначати властивості об'єктів. ''__get()'' в якості параметра отримує ім'я властивості, а  ''__set()'' окрім імені ще і нове значення властивості, яке відповідно і присвоює.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        private $classPropertys;&lt;br /&gt;
        function __set($name, $value)&lt;br /&gt;
        {&lt;br /&gt;
            echo &amp;quot;__set: присвоювання властивості $name = $value&amp;quot;;&lt;br /&gt;
            $this-&amp;gt;classPropertys[$name]=$value;&lt;br /&gt;
        }&lt;br /&gt;
   &lt;br /&gt;
        function __get($name)&lt;br /&gt;
        {&lt;br /&gt;
            echo &amp;quot;__get: читання властивості $name: &amp;quot;;&lt;br /&gt;
            echo $this-&amp;gt;classPropertys[$name];&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    $obj = new SomeClass;&lt;br /&gt;
    $obj-&amp;gt;name = 'New Value'; // Виводить &amp;quot;__set: присвоювання властивості name=New Value&amp;quot;&lt;br /&gt;
    $value = $obj-&amp;gt;name; // Виводить &amp;quot;__get: читання властивості name: New Value&amp;quot;&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Перевантаження викликів методів класу. ==&lt;br /&gt;
&lt;br /&gt;
Якщо метод __call() описаний в певному класі, тоді він автоматично переловлює виклики до неіснуючих методів цього класу. В якості параметрів він отримує ім'я і параметри методу що викликається.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        function __call($name, $params)&lt;br /&gt;
        {&lt;br /&gt;
            echo &amp;quot;Помилка: викликано неіснуючий метод $name з параметром[ами]: &amp;quot;;&lt;br /&gt;
            foreach($params as $val)&lt;br /&gt;
            {&lt;br /&gt;
                echo $val.' | ';&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    $obj = new SomeClass;&lt;br /&gt;
    $obj-&amp;gt;WrongMethodOne(1, 2, 'param'); // Виводить: 'Помилка: викликано неіснуючий метод&lt;br /&gt;
                                    // WrongMethodOne з параметром[ами]: 1 | 2 | param |'&lt;br /&gt;
    $obj-&amp;gt;WrongMethodTwo(123); // Виводить: 'Помилка: викликано неіснуючий метод WrongMethodOne з параметром[ами]: 123 |'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Інтернет-програмування|*]]&lt;br /&gt;
&lt;br /&gt;
[[category:Навчальні проекти]]&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	<entry>
		<id>https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%9E%D0%9F_%D0%B2_PHP</id>
		<title>ООП в PHP</title>
		<link rel="alternate" type="text/html" href="https://wiki.cusu.edu.ua/index.php/%D0%9E%D0%9E%D0%9F_%D0%B2_PHP"/>
				<updated>2010-04-22T09:29:57Z</updated>
		
		<summary type="html">&lt;p&gt;Tkanoff: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В програмуванні на '''PHP''' в основному використовуються такі парадигми програмування як '''процедурне''' і '''об'єктно-орієнтоване''' програмування.&lt;br /&gt;
&lt;br /&gt;
''Розглянемо ці парадигми детальніше.''&lt;br /&gt;
&lt;br /&gt;
== '''Процедурне програмування.''' ==&lt;br /&gt;
&lt;br /&gt;
Робота цієї концепції заснована на виклику так званих процедур (методи, функції, ...).  Кожна процедура містить певну логіку для виконання тих чи інших операцій і може бути викликана з будь-якого місця програми.  &lt;br /&gt;
&lt;br /&gt;
== '''Об'єктно-орієнтовне програмування (ООП).''' ==&lt;br /&gt;
&lt;br /&gt;
В даній парадигмі основою є певний об'єкт чи сукупність об'єктів, їхні властивості, методи і події. Власне з появою ООП і з'явилися такі терміни як '''клас''', '''наслідування''', '''поліморфізм''', '''інкапсуляція'''.&lt;br /&gt;
&lt;br /&gt;
Якщо розглядати поняття об'єкту концептуально, то об'єкт є лише екземпляром певного класу об'єктів.&lt;br /&gt;
&lt;br /&gt;
Об'єкти представляють собою  часткову інформацію про певну сутність, а власне певну модель, що адекватна завданню що треба вирішити. Цей варіант представлення називається абстракція даних. При такому представленні з об'єктом працювати набагато простіше, ніж з низькорівневим представленнями з описом всіх  можливих властивостей і методів.&lt;br /&gt;
&lt;br /&gt;
'''Кожен об'єкт має свій певний тип (клас), що об'єднає в собі наступні елементи:'''&lt;br /&gt;
&lt;br /&gt;
   1. '''Властивості''' – певні параметри і характеристики об'єкту&lt;br /&gt;
   2. '''Методи''' – дії, що можна виконувати над даним об'єктом, чи які може виконувати він сам&lt;br /&gt;
   3. '''Події''' – повідомлення що виникають при зміні стану об'єкта&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''ООП функціонує за наступними принципами:'''&lt;br /&gt;
&lt;br /&gt;
   1. '''Наслідування''' – це можливість породжувати один клас від іншого, при чому всі методи і властивості батьківського класу передаються дочірньому, дочірній клас в свою чергу може набувати нових методів і властивостей, яких не було в батьківському і також передавати їх в похідні від себе класи.&lt;br /&gt;
   2. '''Поліморфізм''' – це можливість дочірнього класу змінювати реалізацію тих чи інших дій батьківського класу.&lt;br /&gt;
   3. '''Інкапсуляція''' – це властивість об'єкта мати спеціальний інтерфейс (певний метод), через який і здійснюється взаємодія зовнішнього середовища з внутрішніми методами класу. При чому зовнішнє середовище може і не підозрювати про структуру і логіку  внутрішніх методів.&lt;br /&gt;
&lt;br /&gt;
Якщо розглядати практичне застосування парадигм програмування стосовно '''PHP''', то в попередніх до '''PHP 5''' версіях використовується в основному процедурне програмування, так як об'єктна схема там вимальована достатньо умовно (тільки для виділення окремих сутностей, їх методів і властивостей в певні класи). Вже в '''5-й''' версії '''PHP''' механізм взаємодії з об'єктами зазнав еволюційних змін.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Області видимості методів і властивостей класів. ==&lt;br /&gt;
&lt;br /&gt;
В '''PHP 5''' введені специфікатори доступу до методів і властивостей класів:&lt;br /&gt;
&lt;br /&gt;
    * '''public''' – доступний без обмежень&lt;br /&gt;
    * '''protected''' – тільки в середині класу, в якому вони оголошені і похідних від нього класах&lt;br /&gt;
    * '''private''' – тільки в середині класу, в якому вони оголошені&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
По замовчуванню виставляється тип доступу ''public''.&lt;br /&gt;
&lt;br /&gt;
Розглянемо приклад з методами і властивостями різних типів доступності.&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
        // оголошуємо основний клас&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        private $privateName = 'Private Name';&lt;br /&gt;
        protected $protectedName = 'Protected Name';&lt;br /&gt;
        public $publicName = 'Public Name';&lt;br /&gt;
 &lt;br /&gt;
    private function PrivateFunction()&lt;br /&gt;
    {&lt;br /&gt;
        echo 'PrivateFunction()';&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    protected function ProtectedFunction()&lt;br /&gt;
    {&lt;br /&gt;
        echo 'ProtectedFunction()';&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function PublicFunction()&lt;br /&gt;
    {&lt;br /&gt;
        echo 'PublicFunction()';&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function GetPrivate()&lt;br /&gt;
    {&lt;br /&gt;
        echo $this-&amp;gt;privateName;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function GetProtected()&lt;br /&gt;
    {&lt;br /&gt;
        echo $this-&amp;gt;protectedName;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    public function GetPublic()&lt;br /&gt;
    {&lt;br /&gt;
        echo $this-&amp;gt;publicName;&lt;br /&gt;
     }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // оголошуємо похідний клас від SomeClass&lt;br /&gt;
    class SomeClass1 extends SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        public function GetPrivateFromParent()&lt;br /&gt;
        {&lt;br /&gt;
            echo $this-&amp;gt;privateName;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $someObj1 = new SomeClass;&lt;br /&gt;
    $someObj2 = new SomeClass1;&lt;br /&gt;
&lt;br /&gt;
    // Доступ до private методів і властивостей&lt;br /&gt;
    echo $someObj1-&amp;gt;privateName; //  Виводить помилку&lt;br /&gt;
    echo $someObj2-&amp;gt;privateName; //  Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;PrivateFunction(); //  Виводить помилку&lt;br /&gt;
    $someObj2-&amp;gt;PrivateFunction(); //  Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;GetPrivate(); //  Виводится 'Private Name'&lt;br /&gt;
    $someObj2-&amp;gt;GetPrivate(); //  Виводится 'Private Name'*/&lt;br /&gt;
    $someObj2-&amp;gt;GetPrivateFromParent(); //  Нічого не виводиться&lt;br /&gt;
&lt;br /&gt;
    // Доступ до protected методів і властивостей&lt;br /&gt;
    echo $someObj1-&amp;gt;protectedName; // Виводить помилку&lt;br /&gt;
    echo $someObj2-&amp;gt;protectedName; // Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;ProtectedFunction(); // Виводить помилку&lt;br /&gt;
    $someObj2-&amp;gt;ProtectedFunction(); // Виводить помилку&lt;br /&gt;
    $someObj1-&amp;gt;GetProtected(); // Виводится 'Protected Name'&lt;br /&gt;
    $someObj2-&amp;gt;GetProtected(); // Виводится 'Protected Name'&lt;br /&gt;
&lt;br /&gt;
    // Доступ до public методів і властивостей&lt;br /&gt;
    echo $someObj1-&amp;gt;publicName; // Виводиться 'Public Name'&lt;br /&gt;
    echo $someObj2-&amp;gt;publicName; // Виводиться 'Public Name'&lt;br /&gt;
    $someObj1-&amp;gt;PublicFunction(); // Виводиться 'PublicFunction()'&lt;br /&gt;
    $someObj2-&amp;gt;PublicFunction(); // Виводиться 'PublicFunction()'&lt;br /&gt;
    $someObj1-&amp;gt;GetPublic(); // Виводиться 'Public Name'&lt;br /&gt;
    $someObj2-&amp;gt;GetPublic(); // Виводиться 'Public Name'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Є ще також статичні (''static'') методи і властивості. Їхньою особливістю є те, що вони не належать певному об'єктові, вони єдині для цілого класу, і можуть викликатися без створення об'єкту. Зміна статичної властивості в одному з об'єктів класу призводить до його зміни для всіх об'єктів цього класу.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
      // оголошуємо основний клас&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        static $staticVar = 'Static Variable';&lt;br /&gt;
 &lt;br /&gt;
        static function StaticFunction()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'StaticFunction()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    echo SomeClass::StaticFunction(); // Виводить StaticFunction()&lt;br /&gt;
    echo SomeClass::$staticVar; // Виводить Static Variable&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Константи класу ==&lt;br /&gt;
&lt;br /&gt;
При описі класу в '''PHP 5''' можна задавати властивості-константи (ключове слово '''const'''). Викликати константи можна і без створення об'єкту на основі класу, в якому оголошені константи.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
          const SOME_CONSTANT = &amp;quot;SOME CONSTANT&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    echo SomeClass::SOME_CONSTANT; // Виводить &amp;quot;SOME CONSTANT&amp;quot;&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Конструктори и деструктори. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Конструктор ('''__construct()''') і деструктор ('''__destruct()''') це методи що викликаються автоматично при створенні і знищенні об'єкту відповідно:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        function __construct()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'Create object';&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        function __destruct()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'Destroy object';&lt;br /&gt;
        }&lt;br /&gt;
     }&lt;br /&gt;
    $someObj = new SomeClass; // Виводиться Create object&lt;br /&gt;
    unset($someObj); // Виводиться Destroy object&lt;br /&gt;
    &lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Абстрактні методи і класи. ==&lt;br /&gt;
&lt;br /&gt;
Абстрактні (''abstract'') методи і класи тільки оголошуються, клас який містить абстрактні методи повинен оголоситися як абстрактний. На основі абстрактного класу можна тільки створювати інші класи, а вже від них об'єкти. Абстрактний клас може містити і звичайні (не абстрактні) елементи.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    abstract class SomeAbstractClass&lt;br /&gt;
    {&lt;br /&gt;
        // оголошення абстрактної функції&lt;br /&gt;
        abstract public function abstractFunction();&lt;br /&gt;
        // оголошення неабстрактної функції&lt;br /&gt;
        public function GeneralFunction()&lt;br /&gt;
        {&lt;br /&gt;
 &lt;br /&gt;
         }&lt;br /&gt;
     }&lt;br /&gt;
&lt;br /&gt;
    class SomeClass extends SomeAbstractClass&lt;br /&gt;
    {&lt;br /&gt;
        // перевантаження абстрактного методу&lt;br /&gt;
        public function abstractFunction()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'abstractFunction()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $someObj = new SomeAbstractClass; // Помилка створення об'єкта&lt;br /&gt;
    $someObj1 = new SomeClass;&lt;br /&gt;
    $someObj1-&amp;gt;abstrFunc(); // Виводить 'abstractFunction()'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Інтерфейси. ==&lt;br /&gt;
&lt;br /&gt;
В '''PHP 5''' немає множинного наслідування, тобто один клас не може бути створений на основі кількох інших класів. Але клас може бути створений на основі кількох інтерфейсів. Інтерфейс – це фактично абстрактний клас, який містить тільки абстрактні методи і не містить ніяких властивостей.&lt;br /&gt;
&lt;br /&gt;
Оголошуються інтерфейси з використанням ключового слова ''interface'', а всі функції оголошуються стандартно, з використанням ключового слова ''function''.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    // оголошення інтерфейсів&lt;br /&gt;
    interface InterfaceOne&lt;br /&gt;
    {&lt;br /&gt;
        function SomeFunctionOne();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    interface InterfaceTwo&lt;br /&gt;
    {&lt;br /&gt;
        function SomeFunctionTwo();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
     // оголошення класу на основі інтерфейсів&lt;br /&gt;
    class SomeClass implements InterfaceOne, InterfaceTwo&lt;br /&gt;
    {&lt;br /&gt;
        public function SomeFunctionOne()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'SomeFunctionOne()';&lt;br /&gt;
        }&lt;br /&gt;
        public function SomeFunctionTwo()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'SomeFunctionTwo()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    $object = new SomeClass;&lt;br /&gt;
    $object-&amp;gt;SomeFunctionOne(); // Виводить 'SomeFunctionOne()'&lt;br /&gt;
    $object-&amp;gt;SomeFunctionTwo(); // Виводить 'SomeFunctionTwo()'&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Фінальні методи і класи. ==&lt;br /&gt;
&lt;br /&gt;
В '''PHP 5''' є можливість задати таку властивість класу і методу як фінальний (final). На основі фінальних класів неможливо створити класи нащадки. Також не можна перевизначити фінальний метод в класах нащадках.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    final class FinalClass&lt;br /&gt;
    {&lt;br /&gt;
 &lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    class ClassWithFinalMethod&lt;br /&gt;
    {&lt;br /&gt;
        final public function FinalFunction()&lt;br /&gt;
        {&lt;br /&gt;
            echo 'FinalFunction()';&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // наступне оголошення класу викликає помилку&lt;br /&gt;
    class SomeClass1 extends FinalClass&lt;br /&gt;
    {&lt;br /&gt;
        // опис класу&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // створюємо клас на основі класу з фінальним методом&lt;br /&gt;
    class SomeClass1 extends ClassWithFinalMethod&lt;br /&gt;
    {&lt;br /&gt;
    // наступне перевизначення методі викликає помилку&lt;br /&gt;
        public function FinalFunction()&lt;br /&gt;
        {&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Обробка винятків (помилок). ==&lt;br /&gt;
&lt;br /&gt;
Найцікавішим нововведенням в '''PHP 5''' є  методи для обробки винятків. Для цього використовуються конструкції  try/catch/throw.&lt;br /&gt;
&lt;br /&gt;
Розглянемо простий приклад використання цих методів:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    try {&lt;br /&gt;
            // відкриваємо файл для читання&lt;br /&gt;
            $fp = @fopen(&amp;quot;somefile.txt&amp;quot;, &amp;quot;r&amp;quot;);&lt;br /&gt;
            // якщо файл відсутній, створюємо виключення&lt;br /&gt;
            if (!$someFile)&lt;br /&gt;
                throw new Exception(&amp;quot; Помилка відкриття файлу!&amp;quot;);&lt;br /&gt;
      &lt;br /&gt;
            fclose($someFile);&lt;br /&gt;
        }&lt;br /&gt;
        catch&lt;br /&gt;
        (Exception $exception)&lt;br /&gt;
        {&lt;br /&gt;
            // метод $exception-&amp;gt;getLine() повертає номер рядка даного скрипта, в якому виникла помилка&lt;br /&gt;
            echo &amp;quot;Помилка в рядку &amp;quot;, $exception-&amp;gt;getLine();&lt;br /&gt;
            echo $exception-&amp;gt;getMessage(); // Выводит &amp;quot;Помилка відкриття файлу!&amp;quot;&lt;br /&gt;
        }&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ключове слово ''instanceof''.&lt;br /&gt;
Метод ''instanceof'' дозволяє визначити походження об'єкта, його приналежність до певного класу, або чи є він нащадком якогось об'єкта. Також за допомогою  instanceof можна визначити чи об'єкт екземпляром класу, створеного на основі певного інтерфейсу.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    interface SomeInterfaceOne { }&lt;br /&gt;
    interface SomeInterfaceTwo { }&lt;br /&gt;
    class SomeClassTypeOne { }&lt;br /&gt;
    class SomeClassTypeTwo extends SomeClassTypeOne {}&lt;br /&gt;
    class SomeClassTypeThree implements SomeInterfaceOne, SomeInterfaceTwo {}&lt;br /&gt;
 &lt;br /&gt;
    $objOne = new SomeClassTypeOne;&lt;br /&gt;
    $objTwo = new SomeClassTypeTwo;&lt;br /&gt;
    $objThree = new SomeClassTypeThree;&lt;br /&gt;
    $clonedObj = clone $objThree;&lt;br /&gt;
&lt;br /&gt;
    // наступний блок виводить: об'єкт $objOne належить до класу SomeClassTypeOne&lt;br /&gt;
    if($objOne instanceof SomeClassTypeOne)&lt;br /&gt;
        echo 'об\'єкт $objOne належить до класу SomeClassTypeOne';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objTwo належить до класу SomeClassTypeTwo&lt;br /&gt;
    if($objTwo instanceof SomeClassTypeTwo)&lt;br /&gt;
        echo 'об\'єкт $objTwo належить до класу SomeClassTypeTwo';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objThree належить до класу SomeClassTypeThree&lt;br /&gt;
    if($objThree instanceof SomeClassTypeThree)&lt;br /&gt;
        echo 'об\'єкт $objThree належить до класу SomeClassTypeThree';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objTwo є екземпляром класу створеного на основі класу SomeClassTypeOne&lt;br /&gt;
    if($objTwo instanceof SomeClassTypeOne)&lt;br /&gt;
        echo 'об\'єкт $objTwo є екземпляром класу створеного на основі класу SomeClassTypeOne';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceOne&lt;br /&gt;
    if($objThree instanceof SomeInterfaceOne)&lt;br /&gt;
        echo 'об\'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceOne';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceTwo   &lt;br /&gt;
    if($objThree instanceof SomeInterfaceTwo)&lt;br /&gt;
        echo 'об\'єкт $objThree є екземпляром класу створеного на основі інтерфейсу SomeInterfaceTwo';&lt;br /&gt;
 &lt;br /&gt;
    // наступний блок виводить: об'єкта $clonedObj створений на основі об'єкту $objThree   &lt;br /&gt;
    if($clonedObj instanceof $objThree)&lt;br /&gt;
        echo 'об\'єкта $clonedObj створений на основі об\'єкту $objThree';&lt;br /&gt;
        ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Функція __autoload() ==&lt;br /&gt;
&lt;br /&gt;
Функція ''__autoload()'' викликається в випадку коли створюється об'єкт на основі неіснуючого або неописаного в даному конкретному файлі з кодом класу&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    function __autoload($class)&lt;br /&gt;
    {&lt;br /&gt;
        echo &amp;quot;спроба створити об'єкт невизначеного класу &amp;quot;, $class;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // спроба створити об'єкт невизначеного класу MyClass&lt;br /&gt;
    // Fatal error: Class 'MyClass' not found in C:\wamp\www\test.php on line 5&lt;br /&gt;
    $someObj = new SomeWrongClass;&lt;br /&gt;
 &lt;br /&gt;
    // наступна стрічка трохи практичніша&lt;br /&gt;
    // (екрануємо створення об'єту символом &amp;quot;@&amp;quot;)&lt;br /&gt;
    // вона виводить:&lt;br /&gt;
    // спроба створити об'єкт невизначеного класу MyClass&lt;br /&gt;
    $someObj = @new SomeWrongClass;&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Перевантаження доступу до властивостей об'єкту. ==&lt;br /&gt;
&lt;br /&gt;
Методи доступу ''__get()'' і ''__set()'' дозволяють динамічно визначати властивості об'єктів. ''__get()'' в якості параметра отримує ім'я властивості, а  ''__set()'' окрім імені ще і нове значення властивості, яке відповідно і присвоює.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
    &amp;lt;?php&lt;br /&gt;
    class SomeClass&lt;br /&gt;
    {&lt;br /&gt;
        private $classPropertys;&lt;br /&gt;
        function __set($name, $value)&lt;br /&gt;
        {&lt;br /&gt;
            echo &amp;quot;__set: присвоювання властивості $name = $value&amp;quot;;&lt;br /&gt;
            $this-&amp;gt;classPropertys[$name]=$value;&lt;br /&gt;
        }&lt;br /&gt;
   &lt;br /&gt;
        function __get($name)&lt;br /&gt;
        {&lt;br /&gt;
            echo &amp;quot;__get: читання властивості $name: &amp;quot;;&lt;br /&gt;
            echo $this-&amp;gt;classPropertys[$name];&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    $obj = new SomeClass;&lt;br /&gt;
    $obj-&amp;gt;name = 'New Value'; // Виводить &amp;quot;__set: присвоювання властивості name=New Value&amp;quot;&lt;br /&gt;
    $value = $obj-&amp;gt;name; // Виводить &amp;quot;__get: читання властивості name: New Value&amp;quot;&lt;br /&gt;
    ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Перевантаження викликів методів класу. ==&lt;br /&gt;
&lt;br /&gt;
Якщо метод __call() описаний в певному класі, тоді він автоматично переловлює виклики до неіснуючих методів цього класу. В якості параметрів він отримує ім'я і параметри методу що викликається.&lt;br /&gt;
&lt;br /&gt;
Приклад:&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
  class SomeClass {&lt;br /&gt;
    function __call($name, $params) {&lt;br /&gt;
      echo &amp;quot;Помилка: викликано неіснуючий метод $name з параметром[ами]: &amp;quot;;&lt;br /&gt;
      foreach($params as $val) {&lt;br /&gt;
        echo $val.' | ';&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
  $obj = new SomeClass;&lt;br /&gt;
  $obj-&amp;gt;WrongMethodOne(1, 2, 'param'); // Виводить: 'Помилка: викликано неіснуючий метод WrongMethodOne з параметром[ами]: 1 | 2 | param |'&lt;br /&gt;
  $obj-&amp;gt;WrongMethodTwo(123); // Виводить: 'Помилка: викликано неіснуючий метод WrongMethodOne з параметром[ами]: 123 |'&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[category:Інтернет-програмування|*]]&lt;br /&gt;
&lt;br /&gt;
[[category:Навчальні проекти]]&lt;/div&gt;</summary>
		<author><name>Tkanoff</name></author>	</entry>

	</feed>