23
Система безопасности
Безопасность - одна из тех характеристик приложения, которым очень часто уделяют недостаточное внимание. Это вызывается тем, что она оказывается невидимой как конечному пользователю, так и разработчику. Тот факт, что она невидима, не означает, что она неважна. На самом деле отсутствие должной защиты может оказаться самой заметной чертой вашего сайта. Представьте себе, что вы разработали сложное коммерческое приложение, в котором клиенты передают данные своих кредитных карточек по сети, а хакеры тут же взломали и осквернили ваш сайт. Добавит ли это уверенности вашим клиентам?
Поэтому, хотя система безопасности обычно не видима конечному пользователю, она может также оказаться очень заметной и очень важной. Поэтому при разработке приложений обязательно следует уделить внимание рассмотрению системы защиты.
В этой главе мы рассмотрим следующие темы:
♦ Определение системы безопасности
♦ Безопасность сервера
♦ Система безопасности Apache
♦ Безопасность и РНР
♦ Безопасность и MySQL
♦ Криптография
♦ Сетевая безопасность
♦ Безопасность программ
Мы также выскажем некоторые советы и предостережения, прежде чем завершить изложение перечислением некоторых интересных ресурсов, полезных для дальнейшего изучения.
Что такое система безопасности?
Система безопасности веб-сайтов - обширная тема. Она включает в себя защиту серверов, сетевую безопасность, аутентификацию пользователей, целостность данных и криптографию, если перечислить лишь некоторые вопросы. Важно и то, что нельзя пренебречь одним из указанных аспектов и сосредоточиться на остальных. Каким бы защищенным ни было приложение, оно окажется уязвимым, если только сервер, на котором оно выполняется, также не будет хорошо защищен.
В этой главе мы осветим основы каждого из этих аспектов системы защиты. Мы не будем исчерпывающим образом перечислять все уязвимые места и все ловушки, которых надо избегать, но постараемся разобраться с теми аспектами защиты, на которые следует обращать внимание при разработке веб-приложений.
Безопасность сервера
Построение системы безопасности можно сравнить с возведением стены. Прежде всего, надо заложить хорошее основание и строить на нем остальное. Если фундамент негодный, то все, что мы на нем возведем, может рухнуть от легкого толчка.
Таким образом, мы должны, прежде всего, заложить надежный фундамент, а это означает защиту веб-сервера. В нашем изложении будет рассматриваться сервер, работающий под Linux.