День Загрузки 2008Нещодавно з’явився соціальний проект від компанії Mozilla, пов’язаний із скорим виходом нової версії браузера Firefox 3. Суть у тому, щоб зусиллями суспільства здобути Світовий Рекорд Гіннесcа самої завантажуваної програми за 24 години. Все, що потрібно зробити аби допомогти у цьому розробнику Firefox, компанії Mozilla - це зайти на сайт проекту, дати обіцянку завантажити Firefox 3 у День Завантаження та не забути її виконати у цей день. Точна дата поки що невідома, але в разі, якщо ви дасте обіцянку, то вам буде вчасно надіслано запрошення від проекту.

У цій нелегкій справі проектом прийнято на озброєння повний арсенал соціальних інструментів: створено групи присвячені цій події у популярних соціальних мережах (MySpace, Facebook та Beebo), спеціальний аккаунт у Twitter, значки для блогів, навіть ось такий цікавий проект для організації тематичних вечірок :)

Наразі набільш багаті на обіцянки США (звичайно ж), Польща, Албанія(!) Італія, Бразилія, Німеччина та Японія. В Україні дано більш ніж 1,5 тисячі обіцянок, а всього близько 200 тисяч і стрімко зростає. На мою думку, це чудова ідея піарщиків Mozilla з популяризації цього вільного браузера.

Наостанок хочу побажати проекту успіхів у здобутті рекорду та популяризації Firefox, адже, чим більше людей користуватиметься Firefox та іншими, альтернативними до ІЕ, браузерами - тим більше буде мотивації у Microsoft робити кращі (за поточні ІЕ) баузери, та тим легше житиметься багатьом веб-розробникам :)

На блозі Нікіти Селецького нещодавно почався конкурс для програмістів на JavaScript. Суть задачі не складна та цілком практична (стосується мінімальної перевірки введених у форму даних) - мені знадобилось близько півтори години на її вирішення, хоча я й ніякий не гуру :) Головні вимоги:

  • Кросбраузерність
  • Універсальність - скрипт має вірно працювати навіть при зміні/додаванні нових елементів
  • Неможна використовувати фреймворки та бібліотеки JavaScript
  • Неможна змінювати HTML чи CSS, всі зміни лиш у відповідному JS-файлі. Отже практикуємо підхід “unobtrusive JavaScript” (ненав’язливий JS).

Сам конкурс триватиме до кінця цього місяця (травня) тож ще є вдосталь часу. Ну і найголовніше - переможець отримує логотип свого блоґу від автора. У будь-якому випадку, непогана вправа для вільного часу.

Тож щасти вам, якщо бажаєте спробувати!

Один з найпопулярніших фреймворків для розробки веб-програм на PHP під назвою CakePHP дуже скоро вийде у світ із новою стабільною версією! Цей довгоочікуваний момент для великого комьюніті веб-розробників незабаром настане. MVC фреймворк із відкритим кодом CakePHP 1.2 принесе розробникам багато нових корисних речей, описаних далі

SQL Injection (вставка SQL) - це одна з найпоширеніших на ряду із XSS (міжсайтовим скриптингом, про який буде мова у наступній статті) уразливостей, яка є наслідком недостаньої (чи навіть відсутньої) перевірки вводу. Ціль цього типу атак є безпосередньо база даних вашого сайту. Суть - вставка сторонніх даних (найчастіше - запиту до БД) у строку, яка в результаті буде виконана базою даних. Такий запит може призвести до великої кількості небажаних дій: починаючи від отримання зловмиником будь-яких даних до їх зміни чи видалення. Тож важливо знати, як захистити свою базу даних від таких уразливостей.

Нова версія популярного браузера Firefox 3 є надзвичайно швидкою та приносить багато змін і виправлень (як наприклад, часті витоки пам’яті). Нажаль, поки що із новою версією працюють далеко не всі розширення - це і не дивно, адже Firefox 3 досі має статус beta. У цій замітці зайде мова про встановлення популярного серед веб-розробників додатку Firebug. Цей додаток дозволяє на ходу змінювати параметри CSS, вносити зміни у DOM документа, відлагоджувати JavaScript та спостерігати за часом завантаження веб-сторінки та її складових. Незамінна річ для тих, хто займається розробкою із використанням AJAX. Сергій Винниченко написав невеликий огляд Firebug у своєму блозі.

Отже, до 5ої бети браузера можна було використовувати версію Firebug 1.1beta. Але, не всім відомо, що існує також версія 1.2alpha. Так, судячи із статусу, вона ще має достатньо проблем, але є цілком придатною до використання із новим браузером. Також вона вводить ряд нових можливостей, серед них:

  1. Програмне вимкнення журналу Firebug через JavaScript
  2. Відображення HTTP статуса у вкладці Net (мережа)
  3. Нова можливість відлагоджування JavaScript: перервати виконання через один брейпоінт.
  4. Вдосконалений монітор заванаження мережі з урахуванням часу оброки запиту на стороні сервера
  5. Новий API консолі

Firebug 1.2 можна скачати звідси - просто оберіть останній за номером реліз. Або можна взяти свіжий код з SVN. Приємного використання!

Kubuntu Linux є одним із дистрибутивів родини Ubuntu. Його основною відмінністю є орієнтованість на графічне середовище KDE, замість GNOME (на який орієнтовано Ubuntu). Я користуюсь Kubuntu Linux вже досить давно (більше року) і вважаю його одним із найкращих дистрибутивів Linux, користувачем котрого я є вже більше 5 років. Офіційний випуск нової версії 8.04 з кодовою назвою Hardy Heron (у перекладі “стійка чапля”) назначений на 24 квітня. Але я не витримав чекати ще кілька днів і вирішив спробувати release candidate :) Отже, у цій замітці буде мій досвід з встановлення і користування новою версією.

У попередньому записі я розповідав про джерела вводу і їх убезпечення. У цій статті я хочу показати як можна перевірити на дійсність дані, що вже потрапили у скрипт. Якщо ви не будете перевіряти дані, то рівень безпеки ані трохи не підвищиться, навіть, якщо ви зробили сам ввід даних більш безпечним.
У минулій статті було згадано, що всі дані приходять як строки чи масиви строк, але у різних ситуаціях ми можемо очікувати різні види даних, наприклад, числа чи які-небудь шаблонні дані (e-mail’и, URL’и, телефонні номери і т.п.). Тож розглянемо ці види даних і методи їх перевірки.

Перше правило, яке слід запам’ятати будь-якому веб-розробнику (не тільки на PHP): ніколи не довіряй даним, які надійшли ззовні. Абсолютно завжди необхідно перевіряти всі дані користувача. У цій статті мова піде про перевірку і убезпечення вхідних даних. Спробуємо відповісти на ці три питання:

  1. Як визначити методи вводу даних?
  2. Яким чином кожен метод може бути використаним зловмисником?
  3. Яким чином кожен тип вводу можна перевірити з метою запобігання проблем із безпекою?

У цій частині розглянемо перші два питання.

13th Кві, 2008

Безпека vs PHP

Про наболіле. Всім відомо, що PHP є мовою із низьким порогом входження, тобто її порівняно легко вивчити на рівні початківця і почати застосовувати. І це дає поштовх до появу на білий світ Інтернету кривих сайтів з купою дірок. В принципі, і не треба очікувати від потуг початківця чогось більшого - це нормально… погано, якщо людина зупиняється на цьому рівні, думаючи, що вона вміє робити офігенні динамічні сайти. А дуже погано, коли веб-студії беруть гроші за сайти із явними дірками у безпеці, що в перспективі може коштувати замовнику на порядки більше ніж послуги дешевої контори та надкороткі строки здачі. Також не слід вважати, що мова PHP є коренем всіх проблем, адже велика кількість сайтів на інших динамічних мовах програмування також мають схожі дірки. Тут справа більше у знаннях та досвіді програміста ніж у обраній ним мові.

За статистикою близько 90% всіх сайтів із загальним доступом мають проблеми із безпекою. За даними дослідження, проведеного компанією WhiteHat Security у березні цього (2008) року, визначені наступні 10 найбільш частих класів уражень:

  1. Міжсайтовий скриптинг (XSS) - 7/10 сайтів
  2. Витік інформації - 2/5
  3. Підміна контенту (наприклад для використання у phishing) - 1/4
  4. Передбачувані місця знаходження ресурсів (PRL) - 1/6
  5. Ін’єкція SQL - 1/6
  6. Недостатня перевірка дійсності користувача - 1/6
  7. Недостатня авторизація - 1/7
  8. Зловмисне використання функціональності - 1/10
  9. Роздвоєння HTTP відповіді - 1/12
  10. Індексування директорій - 1/24

Цю невтішну статистику можна значно покращити, якщо знати і застосовувати основні моменти безпеки веб-програм. Цим записом я започатковую серію присвячену безпеці у контексті PHP, але, думаю, адептам інших мов також буде цікаво. Я спробую розібрати найчастіші проблеми у безпеці веб-сайтів та різні методи їх вирішення.

Тож слідкуйте за поновленнями на сайті. Найлегший спосіб це зробити - підписатись на мою RSS-стрічку :) Перша стаття буде присвячена вхідним даним - їх убезпеченню та валідації (перевірці на вірність вводу).

1st Кві, 2008

UA Web 2008

Вступ

У цьому записі мова піде про першу українську конференцію веб-розробників UA Web 2008. Цей захід мав на меті зібрати усіх професіоналів сфери веб-розробки, познайомити їх і розказати щось цікаве. Одразу скажу, що організаторам все вдалось - вони просто молодці, за що їм величезний респект (особливо Юрію Артюху, який всіх знайшов і зібрав) :) Не дивлячись, на відносно високу (для наших країв) ціну за участь, конференц-зали Президент Готелю, де і проводилась конференція, були заповнені вщент. Це говорить в першу чергу про те, що у нас просто не вистачало такого заходу, необхідність у ньому довго назрівала і вибухнула у потребу вдовольнити той інформаційний голод, який замучив українських професіоналів веб-розробки. Єдиний (але вимушений) мінус - проведення різних доповідей паралельно у двох залах. Більшість доповідей були цікавими для мене, і нажаль, всі відвідати не зміг. Але весь час проводилась відео-зйомка (трансляцію можна було побачити в реальному часі в он-лайні), і організатори обіцяють надати матеріали всіх доповідей учасникам конференції. Деякі доповіді можна вже побачити в он-лайні на сайтах їх авторів. Отже хочу привести на ваш розсуд своє резюме цього дводенного дійства.

Категорії