Компьютер - это очень просто. Часть 5

Продолжение, начало см. здесь

Глава 5. Программы

А я тебя… а я тебя… а я тя ща как запрограммирую! Понял?!
(С) Я

Каждый из нас сталкивается с программами каждый день: программа может быть школьной, общественной, правительственной или компьютерный (а также еще какой угодно!). Как и в обычной жизни, в компьютерном мире понятие программы довольно обширно, - в общем случае программой можно назвать любой исполняемый на компьютере код. Но когда говорят «компьютерная программа», как правило, понимают один или несколько исполняемых и вспомогательных файлов несущих общую функциональную нагрузку и предназначенных для выполнения сходных задача. Например, программа Microsoft Word, однако, строго говоря, на самом деле Word – это очень много отдельных программ, интегрированных в программный комплекс Microsoft Word, который, в свою очередь, входит в дистрибутив Microsoft Office. Но мы не будем далеко забираться в дебри терминологий и по привычке под программой будем понимать тот или иной исполняемый файл или набор файлов как и когда нам будет удобно. Главное запомнить, что программа и файл – это не одно и тоже. Программа в общем случае обязательно должна быть записана в файл, но файл не обязательно должен содержать программу, или, по-другому, программный код.

Так что же такое компьютерная программа? Да, по большому счету, тоже, что и, к примеру, школьная программа: это набор инструкций о том какой материал как и когда преподавать и как оценивать. В компьютерной программе можно выделить два основных сегмента – программный код инструкций и данные которые необходимо обработать.
Программный код пишется на специальных формализированных языках программирования позволяющих описать ту или иную последовательность действий с теми или иными данными. Каждый язык программирования имеет свой лексикон и свой синтаксис, в основе практически всех языков программирования лежит английский язык. Программный код представляет собой обычный текст, который затем преобразовывается специальными программами называемыми компиляторами в понятный компьютеру машинный код. В качестве данных для программного кода может быть использовано все что угодно: от текстовых символов до видеопотока или аргументов сложных математических формул.
Давайте на некоторое время превратимся в программистов и напишем небольшую программу для проверки является ли год високосным? Для начала выясним правило високосного года по григорианскому календарю. А хитроумное правило, придуманное еще в XVI веке гласит: год является високосным, если он кратен 4 и при этом не кратен 100, либо кратен 400; год не является високосным, если он не кратен 4, либо кратен 4, но при этом кратен 100 и не кратен 400. Не правда ли, довольно запутанно? :) Но, на самом деле, не все так запущенно как кажется на первый взгляд. На самом деле високосный год каждый четвертый за исключением тех годов, что оканчиваются на 100, но не делятся на 400, к примеру 1900 и 2100 не являются високосными поскольку без остатка не делятся на 400. А мы с вами стали свидетелями события, происходящего раз в 400 лет – 2000 год без остатка делится на 4, 100, 400 и поэтому является високосным.
Опишем алгоритм построения программы словами:
1. Отображение формы для ввода даты.
2. Проверка на то, что введенная информация является положительным числом не менее 1582
3. Деление введенного числа на 4. Результат от деления равен 0 ? Если не равен вывести сообщение, что год не високосный и перейти к шагу 1, если равен нулю, перейти к шагу 4.
4. Деление на 100. Если результат от деления не равен 0 вывести сообщение о том, что год високосный и перейти к шагу 1. Если результат от деления равен 0 перейти к шагу 5
5. Деление на 400. Результат от деления на 400 равен 0 ? Если равен – вывести сообщение о том, что год високосный и перейти к шагу 1; если результат от деления не равен 0, то вывести сообщение, что год не является високосным и перейти к шагу 1

Если перевести данный алгоритм на язык WEB- программирования JavaScript и вставить в HTML – код, то получим следующее:

В самом низу страницы можно "пощупать" код в действии.
Данный код можно сохранить в отдельный текстовый файл (лучше всего для этих целей в ОС Windows подойдет Блокнот), назвать файл test.html и открыть в браузере. Введите дату в текстовом поле и нажмите кнопку Check, после чего программа сообщит о том, является год високосным или нет?
Подробно останавливаться на строках самой программы не будем – кто хочет сможет сам разобраться, воспользовавшись справочниками HTML и JavaScript. Главное, что на примере простой полезной программы мы взглянули на ее "внутренности".
Современные программы содержат сотни и тысячи, а то и десятки тысяч вот таких маленьких подпрограмм и функций (в данном примере функция называется function check_year() и ограничена открывающей { и закрывающей } скобками), отрабатывая в комплексе. Порой для решения тех или иных задач одной программы бывает недостаточно, и возникают целые программные комплексы состоящие из нескольких программ (или нескольких десятков программ) и наборами библиотек. К примеру, офисный пакет Microsoft Office включает в себя программы для верстки текста, создания таблиц, презентаций и т.п., которые, в свою очередь, используют более мелкие программы и подпрограммы для реализации тех или иных функций.
Поскольку программы пишутся людьми, то неизбежны ошибки в коде и, как правило, процент ошибок – величина постоянная, т.е. на 1 000 строк кода и на 10 000 строк количество ошибок разное в абсолютном исчислении. С ошибками борются как программисты, так и специальные отделы тестирования, однако количество строк программного кода в современных программах настолько велико, что полностью исключить все ошибки, как правило не удается, либо их выявление является экономически нецелесообразным (т.е. количество затраченных на поиск всех ошибок человеко-часов не окупается), в таких случаях иногда производители ПО выпускают специальные версии программного обеспечения, называемых альфа и бета версиями, а также релиз-кандидаты. Такие версии, как правило, распространяются среди ограниченного круга пользователей, которые бескорыстно или за определенное небольшое вознаграждение отсылают разработчику так называемые багрепорты – bag report - с указанием возникших ошибок и условия их появления. Альфа-версии программного обеспечения – это самая ранняя стадия тестирования, на этой стадии программы рассылаются только узкому кругу тестирующих, альфа-код является достаточно сырым и в большинстве случаев не пригоден для повседневного использования. Бета-версии и релиз-кандидаты, напротив, зачастую довольно стабильны и содержат только несущественные ошибки, в целом не влияющие на стабильную работу всего программного комплекса в целом. Иногда даже коммерческие продукты в ранге бета-версий и релиз-кандидатов доступны для свободного скачивания с сайтов компании-разработчика и функционируют в полном объеме до выхода финального релиза или вообще не имеют срока ограничения работоспособности. В процессе работы с такими программными продуктами компаниям-разработчикам отсылаются посредством Internet сообщения о возникших ошибках, таким образом, производитель ПО не тратит деньги на дорогостоящее тестирование, а пользователи получают возможность не заплатив деньги пользоваться продуктом компании.
Но даже все вышеперечисленные меры не гарантируют полного отсутствия ошибок в больших программах, поэтому в процессе эксплуатации обнаруженные ошибки исправляются специальными заплатками (патчами - patch) которые закачиваются автоматически (или в ручном режиме с сайта разработчика) и, как правило, доступны без дополнительной оплаты.
Кроме того, возникающие в программе проблемы можно разделить на собственно ошибки, т.е. то, что не было предусмотрено разработчиками, и на так называемые "дыры в безопасности". Эти самые "дыры" могут быть как следствием ошибок программистов, так и просто неверно изначально спроектированной функцией или особенностью программы, что, вообще-то, как таковой ошибкой не является: совершенно безопасный в момент написания программы код через некоторое время может быть потенциально опасным в руках злоумышленников. Тут ситуация сходна с положением дел с безопасностью в других областях, к примеру, какие бы совершенные автомобильные противоугонные системы не изобретали инженеры, рано или поздно они взламываются и начинается новый виток противостояния.
Также выпускаемые патчи могут не просто исправлять ошибки или улучшать безопасность, но и добавлять в программу дополнительные функции.
Часто можно услышать сленговые выражения "баг" – bag - и "фича" – feature (кстати, есть и русский сленговый аналог – «фишка»). Первое произошло от английского «жук» и означает ошибку в программе, второе – какая-либо полезная особенность программы, как правило, присущая только данной программе. Иногда фичи возникают в результате багов, т.е. ошибок. На просторах Internet можно найти статью, в которой описывается случай, когда в результате ошибки программистов появился интересный момент в игре. А дело было так: в результате определенных действий можно было отряд спецназа превратить в … свиней, что, вообще-то, является багом, но получилось настолько забавно и повторяемость этой ошибки настолько мала, что ее перевели в разряд фичи и оставили в игре.
Если абстрагироваться от программ и ошибок, то, наверное, первый известный человечеству "баг" ставшей "фичей" - это погружение Архимеда в ванную с водой (знаменитая история с короной и золотом) – ошибка в количестве налитой воды в ванную помогла решить задачу о количестве золота в короне.
По способу распространения программы бывают коммерческими т.е. платными когда разработчики всеми мыслимыми и немыслимыми средствами прямо таки вымогают деньги за использование созданного ими программного продукта, вплоть до судебных разбирательств; условно-бесплатными – shareware - когда тем или иным способом пользователю сообщают, что неплохо бы и денежек за программу перечислить авторам, дескать, старались; бесплатными или свободно распостраняемыми – freeware – за пользование программой денег не просят (хотя не исключено, что где-нибудь на сайте автора и написано, мол, кто хочет не стесняйтесь, переводите деньги, которые, не корысти ради, будут потрачены на улучшение программы); и всевозможные демонстрационные – trail, demo – версии – такая программа либо работает с урезанными возможностями, либо только ограниченное количество времени (излюбленное число – 30 дней), либо урезана функционально плюс ограничена по времени. Триал и демо версии программы в общем случае можно отнести Shareware . Еще одним излюбленным приемом демо и триал-версий является наложение своих логотипов на графический и видеоматериал в случае графических и видеопрограмм. В последнее время наблюдается тенденция выпуска демонстрационных полнофункциональных, но ограниченных по времени, версий многих коммерческих программ, таких как 3ds Max, Photoshop, Nero и т.д. когда любой (или бесплатно зарегистрированный на сайте разработчика) пользователь может скачать программу и использовать ее некоторое время для ознакомления с возможностями. Оно и понятно, вышеперечисленные программы, особенно 3ds Max стоят не одну и не две зарплаты рядового пользователя на просторах СНГ (у «буржуев» ситуация получше, но и там далеко не каждый может себе позволить или желает выложить более 3 000 «евриков» за один программный продукт), а конкуренция со стороны свободно распространяемого программного обеспечения в последнее время довольно ощутима, поэтому коммерческим компаниям приходится из кожи вон лезть, чтобы заполучить желанные денежки, в том числе и путем выпуска демонстрационных версий, мол, понравится, в привычку войдет за 30 дней, а там, глядишь, и раскошелится на программу какой-нить бюргер или коренной житель Африки, неволей оказавшийся в 7 поколении гражданином самой наглой страны на нашем небольшом-то на самом деле Земном шарике. Но наши-то не лыком шиты, и поэтому, зачастую, такой номер у производителя не проходит. Но об этом в следующих частях.

Безопасность должна быть безопасной.
Народная мудрость.


Вирусы. Вирусы, вредоносные программы, деструктивный код, трояны - trojan (по аналогии с троянским конем), бекдуры - backdoor, программы-шпионы и т.п. – это все названия зловредных программ, как правило, наносящих различного рода урон владельцу компьютера (или целым компаниям).
В большинстве случаев эти противные программы не являются отдельными файлами, а встраивают свой деструктивный код в совсем даже добропорядочные программы или файлы типа doc, даже в картинки или музыкальные файлы. Точно так же как биологический вирус паразитирует на живых организмах и размножается среди них, так и вирусы компьютерные постоянно ищут новые жертвы и заражают то, на что запрограммированы или даже все подряд без разбора, например в случае ошибки в коде вируса.

Общая схема распространения вируса такова: в Internet выкладывается какая-то популярная бесплатная или условно-бесплатная программа (поэтому всегда целесообразно проверять любую скачанную из сети программу антивирусом), в код которой внедрен компьютерный вирус, после запуска данной программы вредоносный код перехватывает управление, при этом не мешая программе-носителю выполнять свои функции, т.е. для пользователя и для операционной системы присутствие вируса незаметно, далее вирус начинает функционировать самостоятельно - ищет на компьютеры жертвы файлы в которые можно внедрить свой вредоносный код, многие вирусы могут работать с сетями, распространяясь через сообщения электронной почты (поэтому очень неразумно открывать исполняемые файлы, документы Word и т.д. пришедшие по электронной почте тем более от неизвестных адресатов) и т.п. Хоть один раз запустившись на компьютере жертвы, вирус за очень короткий срок, как правило, заражает максимально возможное количество файлов и обеспечивает запуск своей копии при каждом старте системы, при наличии локальных сетей или Internet пытается рассылать свои копии на найденные в сети компьютеры, по адресам из адресных книг почтовых клиентов и т.п. – фантазия у вирусописателей поистине неисчерпаемая и всегда идет в ногу с новыми технологиями. Иногда вирусы умеют обнаруживать установленный антивирус и успешно с ним бороться, в результате даже тщательная проверка компьютера антивирусом еще не гарантирует того, что компьютер не заражен заразой.
Кроме того, антивирусы умеют распознавать не все вирусы, особенно это касается новейших вредоносных программ, сигнатуры (образец кода) которых еще не успели попасть в базы антивирусов (вот почему настоятельно рекомендуется обновлять антивирусные базы как можно чаще). Из всего этого вытекает, что почти, подчеркну, почти 100%-е верное заключение о присутствии или отсутствии вирусов на конкретном компьютере может дать только квалифицированный специалист (фирма) в области компьютерной безопасности после тщательного анализа программного обеспечения установленного на проверяемом компьютере. Однако из этого не следует, что в антивирусной программе нет особого смысла: применение антивируса существенно снижает риск заражения компьютерным вирусом.
Поскольку программный код вируса как правило мал, то еще одним излюбленным способом распространения вирусов являются всевозможные генераторы ключей (keygen) для программ, активаторы, взломщики и т.п. – найти кейген без вируса в последний момент довольно затруднительно. Отсюда вывод: избегайте таких программ, а уж если очень "припечет" (только помните – незаконное использование "крякнутых" программ может быть наказуемо со стороны правоохранительной системы) для запуска кряка лучше использовать отдельную виртуальную машину без доступа к сети.
Еще одним популярным методом распространения вирусов является создание или заражение существующих WWW-страниц на сайтах. Используя уязвимости в браузерах, программах просмотра Flash-анимации, JavaScript, Active-X и других Internet-продуктах и технологиях, вредоносный программный код запускается на компьютере жертвы. Особенно следует избегать сайтов порнографического характера - многие из них так и норовят подсунуть на компьютер любителя "клубнички" какую-то заразу. Также распространенный способ заманить (и внедрить злополучный код) на вредоносный сайт - сомнительного содержания баннеры. Отсюда вывод: для более-менее безопасного посещения Internet-ресурсов, особенно не вызывающих доверие, используйте безопасные браузеры с возможностью отключения или блокировки всплывающих окон, Flash, JavaScript, не отключайте брендмауэр (файрвол), используйте антивирусы с сетевыми экранами, пользуйтесь прокси-серверами которые "режут" нежелательную рекламу и не пускают на многие из ненадежных сайтов.
Многие вирусы используют выявленные уязвимости в операционных системах (либо других программных продуктах), поэтому также важно своевременно загружать (или разрешить ОС делать это автоматически) обновления.
Кроме способности распространятся, определенное количество вирусов является полиморфными, т.е. умеют изменять свой код, или, по-другому – мутировать, тем самым осложняя борьбу с собой, так как один и тот же вредоносный код на разных компьютерах или в разный период времени может иметь отличную от оригинала сигнатуру. Также существуют вирусы, скачивающие для себя обновления с ресурсов вирусописателей.
По своим деструктивным действиям вирусы довольно разнообразны, они умеют (список не полный):
- удалять данные с жесткого диска;
- шифровать данные на жестком диске с целью вымогательства денег за расшифровку;
- красть пароли, номера кредиток либо любую другую конфиденциальную информацию;
- рассылать спам;
- предоставлять доступ к зараженному компьютеру (бекдуры) или другим компьютерам локальной сети;
- блокировать работу компьютера с целью вымогательства;
- искажать изображение на экране монитора;
- организовывать атаки на другие компьютеры;
- замедлять работу компьютера;
- вызывать ошибки в работе операционной системы или отдельных программ;
- выводить различного рода сообщения, мешающие работе, показывать рекламу;
- вести протокол работы пользователя за компьютером (шпионские программы), прослушивать разговоры по IP-телефонии, получать текст переписки в ICQ, отсылать копии отправляемых и получаемых электронных писем;
- предоставлять доступ злоумышленникам к подключенному оборудованию (например, web-камерам);
- «уводить» номера ICQ, учетные записи Skype;
- пожалуй, хватит.
Большинство вирусов пишутся с целью наживы: украсть конфиденциальную информацию, зашифровать данные, организовать так называемый ботнет. Ботнет – это сеть зараженных компьютеров управляемых из единого центра. В состав одной такой сети могут входить тысячи и десятки, а то и сотни тысяч зараженных компьютеров. Ботнеты используются для массовой рассылки спама, организации распределенных атак, могут привлекаться к распределенным вычислениям, например взлом пароля и т.д. Владельцы таких сетей сдают их в аренду либо непосредственно выполняют тот или иной заказ, получая за это вознаграждение.
Также вирус может написать обидевшийся на работодателя сотрудник или просто человек, не разделяющий принятые этические нормы и уголовные законы, или не ведающий что творит (т.е. немного «не того», как говорят).
Если после прочтения всего выше написанного у Вас волосы зашевелились, а рука потянулась к кнопке питания системного блока – не спешите. Как говориться, не так страшен черт, как его малютка. Старайтесь следовать перечисленным советам, которые я еще раз перечислю ниже, и вероятность заражения компьютерной заразой Вашего компьютера если и не сведется к нулю, то, по крайней мере, будет к нему стремиться. К тому же не всякий вредоносный код вреден именно вашему компьютеру. К примеру, если компьютер не используется для выполнения электронных платежей, но заражен вирусом ворующим пароли к платежным системам, то кроме как занимать незначительные ресурсы системы, ничем этот вирус на данном компьютере не страшен. Или на отключенной от Internet машине код, предназначенный для ботнет, также не сможет выполнять свои функции. Отсюда вывод: перед тратой средств и времени на антивирусную защиту оцените степень возможного ущерба от действия вирусов. Но помните, даже если на вашем компьютере нет конфиденциальной информации и даже возможность шифрование вредоносной программой жесткого диска Вас не пугает (ну, подумаешь, переставлю ОС со всеми потрохами за ночь), а о сети этот компьютер даже и не слышал, то всегда существует вероятность, что зараженная машина может стать плацдармом для распространения заразы на другие компьютеры через переносные носители информации.
Итак, как и обещал, повторение элементарных средств компьютерной безопасности.
1. Используйте антивирус и обновляйте вирусные базы как можно чаще. На данный момент существуют бесплатные для некоммерческого использования антивирусы, базы которых при подключении компьютера к сети Internet обновляются не реже, чем два раза в сутки, например (да не сочтут пусть приверженцы других антивирусов за рекламу, как говориться: не корысти ради) антивирус Avast. Этот продукт существует в некоммерческой хоум-редакции (необходимо зарегистрироваться на сайте разработчика и получить бесплатно ключ активации, действующий более года, после чего процесс можно бесплатно повторить опять), регулярно обновляет свои антивирусные базы, русифицирован, имеет модули для проверки почты, сетевой экран, умеет поводить эвристический анализ. Еще один способ легально бесплатно пользоваться антивирусами – это бетаверсии популярных продуктов, к примеру, у Касперского постоянно выложен очередной разрабатываемый продукт для тестирования всеми желающими (по моему скромному мнению антивирус Касперского все же тяжеловат, т.е. неоправданно расходует системные ресурсы компьютера, чем это могло бы быть).
2. Не запускайте пришедшие по электронной почте с сомнительных (неизвестных) адресов различного рода программы и не переходите по указанным ссылкам. Помните, письмо с содержанием: "кликните на эту ссылку и получите возможность заработать миллион" в 99 случаев из 99 содержит ссылку на сайт мошенников нередко с вредоносным кодом, в лучшем случае – на страницу с рекламой.
3. Пользуйтесь почтовыми клиентами с функцией антиспам.
4. По возможности оставляйте свой электронный адрес на как можно меньшем количестве Inetnet-ресурсов. Заведите себе как минимум два почтовых ящика: один для регистрации на различных форумах и т.п. – второй для личной и/или деловой переписки. Если пользуетесь системой электронных платежей – для нее лучше завести отдельный e-mail адрес на надежном почтовом сервере.
5. Присматривайтесь внимательно любым почтовым сообщениям в которых предлагают перейти по ссылке, запустить программу, скачать обновление. Помните, нередко злоумышленники под видом службы поддержки платежных систем, Интернет - магазинов и т.п. просят выслать пароли (настоящий саппорт никогда об этом не попросит) или скачать обновления. Адрес отправителя легко подделать, поэтому оценивайте риск при выполнении, к примеру, действий указанных в письме с, казалось бы, совершенного безобидного адреса вида support@ваш.провайдер. Если в письме с подобного адреса написано что-то на подобии "перейдите по ссылке, скачайте программу и скорость интернет-соединения возрастет в несколько раз" – лучше перезвоните провайдеру и… убедитесь, что ничего подобного он не рассылал, а медленная скорость Вашего Интернета обусловлена исключительно "временными трудностями" :) . Еще один излюбленный адрес для подделки – это microsoft.com после собачки. С виду вполне добропорядочное письмо с солидным адресом отправителя, а при ближайшем рассмотрении полного заголовка письма (обычно доступно в меню Вид почтового клиента) оказывается, что машина–отправитель данного письма совсем не сервер Microsoft, а какой-нибудь зомбированный компьютер Васи Пупкина из Зимбабве.
6. Проверяйте антивирусом любые сменные носители информации (пожалуй, за исключением лицензионных дистрибутивов программных продуктов полученных из достоверных источников) используемые на компьютере, особенно это касается флешек. Если пользуетесь Windows, лучше отключите функцию автозапуска со сменных носителей: этим пользуются некоторые зловредные программки. Не, я, конечно, понимаю, что удобно и все прочее, но, поверьте, безвозвратно потерянная информация или украденный пароль может отнять намного больше сил/времени/денег/нервов, чем ручной доступ к сменному носителю. Особенно тщательно надо относиться к программам (расширение exe, msi) и документам с расширениями doc, docx, xls, mdb .
7. Избегайте запуска всевозможных креков, генераторов серийных номеров и т.п. Если уж очень «необходимо», воспользуетесь, установленной посредством виртуально машины, изолированной операционной системой.
8. Для загрузки различного рода программного обеспечения из сети прибегайте к услугам внушающих доверия ресурсов, к примеру, сайт разработчика или порталы с хорошей репутацией, например http://sourceforge.net, но и это не избавляет от необходимости проверять скачанные программы антивирусом.
9. Не посещайте порноресурсы и сайты с креками. А если уж очень «припекло», не используйте для этого Internet Explorer. Браузер Mozilla Firefox с расширением No Script или Opera с отключенной обработкой JavaScript намного повысят шансы на успешное противостояние всей той заразе, что попытается проникнуть на ваш девственно чистый в плане вирусов компьютер (ну, я, по крайней мере, надеюсь, что Ваш компьютер именно такой, кА я описал). Не кликайте на различного рода сомнительные баннеры – только себе дороже.
Сомнительные тут, сомнительные там, а, собственно, как отличить нормальное от сомнительного в Internet?! – может спросить неискушенный пользователь. Что же, - отвечу, - тут необходим некоторый опыт и интуиция, здравый смысл - точно так же как определяют на рынке качественный продукт подсовывают продавцы или тухлый? (Кстати, как и на рынке, как правило, никто не мешает пользоваться советами более искушенных пользователей, например, меня ;) ) А что нам говорит на сей счет здравый смысл? Говорит, что любые предложения быстро обогатится, просмотреть «горячий ролик», сообщить свои конфиденциальные данные - это заведомо, мягко говоря, туфта со всеми вытекающими последствиями.
10. Если вы работаете в коллективе, не записывайте личные пороли на бумажках, и, тем более, не оставляйте под мониторами или под клавиатурой или в текстовых файлах на компьютере. Если уж испытываете проблемы с запоминанием паролей (лучше в таком случае, конечно, поменять профиль - к примеру, переключиться на выращивание томатов – и витамины под рукой, и пароли запоминать скорее всего не придется) , то храните их в действительно надежном месте, например сейфе. Еще можно воспользоваться программой для хранения паролей: достаточно помнить один пароль, чтобы получить доступ ко всем остальным.
11. Используйте пароли не менее 8-ми знаков длинной, используйте цифры, маленькие и большие буквы, например «Яблоко78», но еще лучше, когда пароль состоит из бессмысленного набора символов со специальными знаками, что-то вроде Fz6b@yT. Если не можете придумать пароль, воспользуйтесь специальными генераторами паролей (хотя, может, все же, лучше на томаты? ;) ). Меняйте пароли достаточно регулярно, не реже чем раз в 90 дней. В случае с паролем типа «Яблоко78» не меняйте пароль на «Яблоко79» - это первое, что попробует ввести злоумышленник, если ему известен Ваш предыдущий пароль. О недопустимости в качестве паролей дат рождения себя или любимой сучки Жучки, девичьей фамилии матери и т.п., думаю, напоминать не стоит – вы все об этом прекрасно знаете.

Хух… и этот список получился не полный. Кто на это все смотрит скептически, ну, что же? – это такие же правила работы с компьютером и Internet как те, что встречаются нам в оффлайновой жизни: не переходить на красный свет, не пить сырую воду из-под крана… в конечном итоге – решать Вам, но и за последствия, во многих случаях, расплачиваться тоже…

Продолжение см. здесь.

Собственно, как выглядит "в натуре" приведенный выше код:


Проверка високосного года

В поле ниже введите дату и нажмите кнопку Check