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-стрічку :) Перша стаття буде присвячена вхідним даним - їх убезпеченню та валідації (перевірці на вірність вводу).

Натисніть на одну з наступних кнопок для того, щоб долучити цей запис до вашого улюбленого сервісу соціальних закладок: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Blogosvit
  • Chuv
  • MyNews
  • Digg
  • del.icio.us
  • Sphinn
  • Facebook
  • Mixx
  • Google
  • connotea
  • Furl
  • Ma.gnolia
  • NewsVine
  • Spurl
  • StumbleUpon
  • Technorati
  • YahooMyWeb

Схожі замітки

Відповіді

> PHP є мовою із низьким порогом входження…

Саме це є її перевагою і водночас “недоліком”. Бо “діри” в сайтах присутні не через те, що PHP - куца мова програмування, а від псевдо відчуття програміста, що він вже все знає.

> А дуже погано, коли веб-студії беруть гроші за сайти із явними дірками у безпеці

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

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

IMHO не кожному сайту потрібна потужна система безпеки. Програмісти - початківці, роблять простенькі сайти визитівки. Так, на таких сайтах повно дірок, але жодна людинка, що дійсно могла б скористатися цими недоліками, не стане марнувати час, на те, щоб завалити сайт васі пупкіна, що може похизуватися, скажімо 2 - 3 унікальними хостами на день. :о)

Звичайно ви, пане Morion, тут маєте рацію. Сайт Васі ( сподіваюсь, що він не проти згадування свого імені :) ) дуже малоймовірно, що хтось ламатиме.

Але, сайт того ж Васі Пупкіна не обов’язково ламати, щоб зробити йому прикрість.

Це радше буде потрібне для того, щоб, наприклад, масово розсилати спам через невдало змайстровану форму зворотнього зв’язку, залишати спамові повідомлення в гостьовій книзі у великій кількості, тощо. Це може й виглядає не надто переконливо, але, якщо таких зламаних сайтів, буде у зловмисника 100 або більше, то хто знає.

Та справа навіть не в цій уявній небезпеці, а в тому, щоб сайти, які володіють приватною інформацією (не будемо йти далеко, візьмемо ті ж e-mail) не майструвалися з помилками.

Згоден із virua.
А окрім того, на деяких неякісних віртуальних хостингах сайт нашого абстрактного Васі може бути використаним для злому інших сайтів, які знаходяться на цьому хостингу. Наприклад, через дірку завантажити троянця для віддаленого керування сервером. І якщо цей сервер налаштований не надто добре, то тут можливі варіанти від доступу до чужих сайтів до ураження системних налаштувань.

Morion’е, просто мова йде про те, що, якщо людина збирається серйозно займатись веб-розробкою, то на питання безпеки їй просто необхідно звернути увагу.

Залиште відповідь, будь ласка

XHTML: Ви можете використовувати такі теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Ваша відповідь:

Категорії