Введение
Когда я учился в институте, один из преподавателей сказал фразу, которая
отложилась у меня в памяти на долгие годы: "Неправильно заученный материал хуже незнания". Действительно, если вы чего-то не знаете, то спросите
у более опытных программистов или найдете ответ в Интернете. Если вы
заучили материал неверно, то будете использовать его неверно, а в случае
с программированием интернет-приложений это представляет опасность для
сервера.
Книгу могут читать программисты разного уровня, поэтому в данной и следующей главе излагаются основы РНР. Я постарался сделать книгу понятной даже тем, кто видит этот язык впервые. Конечно же, она не сможет
стать вашим единственным учебником, но надеюсь, что будет основным.
1.1. Кто такие хакеры?
Это довольно спорный вопрос, и я достаточно много писал о том, кто такие
хакеры и как ими стать. Если вы уже читали мои книги, то этот раздел покажется вам знакомым, но отличия есть, потому что в данном случае мы
делаем упор на Web-программирование и Web-взлом, а здесь есть свои отличия. Давайте разберем понятие "хакер" с позиции, с которой я буду рассматривать его в данной книге. Но для начала надо немного углубиться
в историю.
Понятие "хакер" зародилось, когда только начинала распространяться первая сеть ARPANET. Тогда это понятие обозначало человека, хорошо разбирающегося в компьютерах. Некоторые даже подразумевали под хакером
человека, "помешанного" на компьютерах. Понятие ассоциировали со свободным компьютерщиком, человеком, стремящимся к свободе во всем, что касалось его любимой "игрушки". Благодаря этому стремлению и тяге к свободному обмену информацией и началось такое бурное развитие Всемирной сети.
Именно хакеры помогли развитию Интернета и создали FIDO. Благодаря им
Страница 5
появились UNIX-подобные системы с открытым исходным кодом, на которых сейчас работает большое количество серверов.
В те далекие времена еще не было вирусов, и не внедрилась практика взломов сетей или отдельных компьютеров. Образ хакера-взломщика появился
немного позже. Но это только образ. Настоящие хакеры никогда не имели
никакого отношения к взломам, а если хакер направлял свои действия на
разрушение, то это резко осуждалось виртуальным сообществом. Даже самые яркие представители борцов за свободу не любят, когда кто-либо вмешивается в их личную жизнь.
Настоящий хакер — это творец, а не разрушитель. Так как творцов оказалось больше, чем разрушителей, то истинные хакеры выделили тех, кто занимается взломом, в отдельную группу и назвали их крэкерами (взломщиками) или просто вандалами. И хакеры, и взломщики являются гениями
виртуального мира. И те, и другие борются за свободу доступа к информации. Но только крэкеры взламывают сайты, закрытые базы данных и другие
источники информации с целью собственной наживы, ради денег или минутной славы, такого человека можно назвать только преступником (кем он
по закону и является!).
Если вы взломали программу, чтобы увидеть, как она работает, то вы — хакер, а при намерении ее продать или просто выложить в Интернете crack
(крэк) становитесь преступником. Ежели вы взломали сервер и сообщили
администрации об уязвимости, то вы, несомненно, — хакер, но коли уничтожили информацию и скрылись, то это уже преступление.
Жаль, что многие специалисты не видят этой разницы и путают хакерские
исследования с правонарушениями. Хакеры интересуются системой безопасности систем и серверов для определения ее надежности (или в образовательных целях), а крэкеры — с целью воровства или уничтожения данных.
Перечислю категории крэкеров.
• Вирусописатели применяют свои знания для того, чтобы написать программу разрушительной направленности.
О Вандалы стремятся уничтожить систему, удалить все файлы или нарушить
работу сервера.
• Взломщики компьютеров/серверов совершают "кражу со взломом" с целью
наживы, выполняя, зачастую, чьи-либо заказы на получение информации, очень редко используют свои знания в разрушительных целях.
• Взломщики программ снимают защиту с профаммного обеспечения и предоставляют его для всеобщего использования. Такие люди приносят
ущерб софтверным фирмам и государству. Профаммисты должны получать зарплату за сво
Страница 6
Чтобы еще раз подчеркнуть разницу между хакером и крэкером, можно
сравнить их со взломщиками программ. Все прекрасно понимают, что
многие софтверные фирмы завышают цены на свои программные продукты.
Крэкер будет бороться с ценами с помощью снятия защиты, а хакер создаст
свою программу с аналогичными функциями, но меньшей стоимости или
вообще бесплатную. Так движение Open Source можно причислить к хакерам, а те, кто пишет крэки, относятся к взломщикам, т. е. крэкерам.
Мне кажется, что путаница в понятиях отчасти возникла из-за некомпетентности в этом вопросе средств массовой информации. Журналисты популярных СМИ, не вполне разбираясь в проблеме, приписывают хакерам
взломы, делая из них преступников.
На самом же деле, хакер — это просто гений. Истинные хакеры никогда не
используют свои знания во вред другим. Именно к этому я призываю в данной книге, и никакого конкретного взлома или вирусов она не содержит.
Будет только полезная и познавательная информация, которую вы сможете
использовать для умножения своих знаний.
Итак, если ваш сайт взломал хакер, то он покажет вам уязвимость и, возможно, даже посоветует, как исправить ошибку. Но если ошибку найдет
крэкер, то можно потерять данные или главную страницу.
В большинстве случаев к хакерам относятся опытные или молодые люди,
которыми движет стремление к изучению чего-то нового. Они тестируют
сайты для того, чтобы узнать, как те работают, и если в процессе изучения
будет найдена ошибка, то программист сайта или администратор узнают об
этом первыми.
Крэкеры — это, в основном, молодые люди. В большинстве случаев ими
движет стремление показать свое превосходство. Такие крэкеры могут только изменить главную страницу или сыграть с пользователями или администраторами безобидную шутку. Но если крэкером движет идеологическое
соображение, то это уже опасно. Такой человек может уничтожить информацию, потому что тут на первый план выходит стремление максимально
нарушить работу сервера и сайта.
Хакеры должны не просто знать компьютер. Когда мы будем рассматривать
атаки, которые используют хакеры, то вы увидите, что без навыков программирования реализовать большинство из этих приемов будет невозможно. Если вы заинтересовались и решили повысить свой уровень мастерства,
то могу посоветовать прочитать мои книги "Программирование в Delphi глазами хакера" [4] и "Программирование на C++ глазами хакера" [3]. Надеюсь,
это поможет вам научиться создавать собственные шуточные программы
и хакерский софт
Страница 7