Делаем компьютер неуязвимым. Сканирование на уязвимости: как проверить устройство и обезопасить себя от потенциальных угроз

Проверка на уязвимость сайта служит профилактирующей мерой против взлома сайта. По статистике с каждым годом увеличивается количество взломов сайтов. Повышенный интерес представляют сайты и блоги с большим количеством посетителей или публикующие на своих страницах свои успехи в заработке (финстрипы). Поэтому пренебрегать безопасностью своих проектов просто непозволительно.
Так как большая часть бесплатно распространяющихся CMS (WordPress, Joomla и др.) содержат различные уязвимости (дыры), поэтому безопасность сайтов на этих CMS недостаточна. Проверка на уязвимость сайта просто необходима и ее следует проводить регулярно.

Нужно всегда проверять свой сайт (после изменений в коде или очередного обновления cms) на уязвимость на специальных сервисах (find-xss.net ) или с помощью программ (XSpider , MaxPatrol — платные) тем более это не займет так много вашего времени, а пользы может принести немало. Бесплатная программа SQLFury проводит тест-проверка на уязвимость сайта от SQL инъекций.

Основные возможности программы-сканера SQLFury :

Поддержка баз данных

  • MySQL
  • PostgreSQL
  • Microsoft SQL Server
  • Oracle

Извлечение данных из базы

  • Определяет версию базы данных
  • Определяет пользователя базы данных
  • Определяет всех пользователей из базы данных
  • Определяет имя базы данных
  • имена всех баз данных
  • имена таблиц
  • имена колонок

Атаки с помощью SQL инъекций являются одним из наиболее распространенных видов атак на сайты. Программа SQLFury первая бесплатная программа для возможности проверить сайт на уязвимость, причем очень быстрая (по ней примерно можно узнать и время загрузки проверяемого сайта). Для работы программы требуется установка приложения Adobe Air, поэтому работает на всех системах. Сделал портабельную версию программы, стало удобно пользоваться.

Еще один бесплатный инструмент для проверки сайта на уязвимость от SQL инъекций- плагин для Firefox- SQL Injection 1.2 . Плагин позволяет проверить весь контент на страницах, на наличие SQL инъекций. Рекомендуется всем проверится и если не пройдете тест, то срочно нужно подумать о безопасности своего сайта.

Ты наверное до сих пор думаешь, что хакеры ищут уязвимости в программных
продуктах в ручную, постоянно смотря в исходный код или ручками вставляя
спецсимволы в переменные скриптов? Ты глубоко ошибаешься, мой дорогой друг.
Существует масса пауков сканеров и вспомогательных программ, которые позволяют
по максимуму сократить время исследования. Конечно, многие из них стоят кучу
денег. поэтому достать их проблематично (хотя вполне реально, те же Xspider,
Nessus), другие же не обладают нужной функциональностью. Но всегда есть золотая
середина. Сейчас я поведаю о очень полезных бесплатных программках которые
окажут отличную помощь взломщику, а также затронем тему локального поиска
уязвимостей в исходниках вебскриптов.

RPVS — во Франции также есть хакеры

Скромную заметку о этой программе я на днях отыскал на одном элитном
международном хакерском форуме. Программа однозначно из класса Must Have. Тем
более, что софтина имеет как консольный, так и графический интерфейс. Полное ее
название — Remote PHP Vulnerability Scanner. Этот сканер затачивался под
удаленное исследование сайтов написанных на PHP. Программа способна находить
такие уязвимости: XSS, SQL-Injection, уязвимости подключения файлов функциями
include() и fopen() и раскрытия инсталляционного пути. Программа работает как с
GET, так и POST запросами. Имеет несколько режимов работы и отличную скорость
сканирования. Принцип ее работы состоит в полном собрании линков с сайта, после
чего подставляют спецсимволы в переменные и проводится анализ на показанных PHP
ошибках и сигнатурах. Протестировав ее на одном из небольших сайтов, я получил
подробный отчет о найденных уязвимостях.

Rapport on http://test3.ru/

Number of made request: 24
vuln include: 0
vuln xss: 12
err fopen: 0
err inc: 0
err sql: 0
—————————————————-
Vuln XSS:
/?year=2006&month=02&day=6941337%22%27
/?year=6941337
%22%27&month=01
/?year=6941337
%22%27&month=02&day=05
/?year=2006&month=6941337
%22%27&day=05
/?year=6941337
%22%27&month=03
/?year=6941337
%22%27&month=02
/?year=6941337
%22%27&month=12

Vuln SQL:
/?id=6941337
%22%27
/?id=15&c=6941337
%22%27

Видишь, неплохой отчет. Автоматизация — отличный процесс, который неплохо
экономит время и нервы. Да, кстати, в сети есть вполне компилируемые исходники
этой чудо программы —
http://81.57.125.106/~slythers/rpvsv1.3-src.rar .

В некоторых случаях, когда масштабное сканирование не удается произвести, работу
можно полуавтомазировать с помощью такого софта как Mini-Browser (http://www.aignes.com)
и Advanced HTTP Header Constructor 1.2 (http://www.ru24-team.net).
Программы умеют многое и в любом случае тебе понадобятся, Mini-Browser позволяет
подделывать POST/GET запросы и кукисы, а также вытаскивать все ссылки на
странице. В программу встроен браузер (на движке ИЕ), что делает работу еще
удобнее. Ну а эстеты могут посмотреть на других вкладках исходник или лог
Клиент-Сервер. Advanced HTTP Header Constructor работает с HTTP-заголовками,
позволяет составлять/подделывать/отсылать POST и GET заголовки, а также многое
другое. Для установки нужен свежий Framework.

Acunetix Web Vulnerability Scanner 3 — Достойная замена XSpider

Когда-то просматривая каталог линков с astalavista.box.sk я и наткнулся на
эту программу. Ее описание мне пришлось по вкусу. По своим возможностям она даже
превосходит XSpider. Acunetix Web Vulnerability Scanner — cканер уязвимостей
вэб-сайтов, сканирует как комплексно так и профильно, то есть Cross site
scripting, SQL injection, cgi-test, CRLF Injection, Directory traversal,
Authentication hacking. Также в сканере присутствует очень интересный тип атаки
— Google hacking на определенный сайт. Этот тип атаки использует поисковые
системы для поиска уязвимостей, что очень полезно и оригинально. Сканер также
отлично определяет версии веб-сервера и его модули. Плюс в него встроены
различные перекодировщики и шифровальщик, HTTP снифер и средства подмены
заголовков. Этот софт обязательно должен поселится в джентльменском наборе
хакера. Так что не поленись, скачай и зацени! Плохо лишь одно, как и все
программные продукты подобного рода, этот софт стоит больших денег (1500$). Но
все лечится, защита там слабенькая. Тем более обновление доступно и в
trial-версии. Кто ищет, тот всегда найдет. Я нашел 🙂

Google – Величайший сканер уязвимостей

С помощью поисковых систем, на самом деле, очень удобно искать нужные
уязвимые скрипты. Нужно только вспомнить о эпидемии червячка Santy, который
искал в Google все бажные phpBB форумы. Подробнее о червячке можно почитать
здесь —
http://www.f-securлe.com/v-descs/santy_a.shtml . Также примеры реализации
подобных сканеров ты найдешь на сайте команды AntiSecurity (http://antisec.2×4.ru).
Так что при грамотном написании программы и хорошей уязвимости, хакер получает
контроль над огромным количеством сайтов.

Теперь мне бы хотелось затронуть тему переполнения буфера. Искать уязвимости
такого типа вручную можно несколько лет, так что будем автоматизировать 🙂
Кстатиь, компания eyee.com утверждает, что большинство уязвимостей они нашли
автоматически, используя специальное программное обеспечение.

RATS — Грубый Инструмент Ревизии для Защиты

RATS, Rough Auditing Tool for Security (Грубый Инструмент Ревизии для Защиты)
является утилитой ревизии защиты для C и C ++ кода. RATS просматривает исходный
текст, находя потенциально опасные обращения к функциям. Цель этого инструмента
— не окончательный поиск ошибки, а скорее обеспечение разумной отправной точки
для выполнения ручной ревизий защиты. Мой хороший знакомый уже давно пользуется
данной программой и очень доволен ее результатами. И еще конечно же радует
открытость ее исходного кода.

Также следует обратить внимание на аналогичный софт под названием ITS4 (http://www.securitylab.ru/_tools/its4-1.1.1.tgz).
Этот инструмент командной строки ищет уязвимости C и C ++ кода и работает на
платформах Windows и Unix. Есть еще одна полезная программа из данного класса —
Flawfinder (http://www.dwheeler.com/flawfinder/).
В отличие от ITS4, flawfinder имеет полностью открытое программное обеспечение
(распространяется согласно лицензии GPL).

BofCheck — Buffer Overflow, Environment Variables Overflow/Format String
Vulnerabilities Binary Tester

BofCheck используется для проверки программ на наличие основных уязвимостей.
Программа проверяет переполнение буфера и уязвимости в параметрах командной
строки. Софтину стоит использовать только когда нет под рукой исходного кода или
поиск в нем не дал результатов.

Qaudit — Perl приходит на помощь

Оказывается классные вещи можно написать на интерпретируемом языке Perl.
Qaudit.pl — сценарий для быстрой ревизии C и C ++ исходных файлов на наличие
переполнения буфера, ошибок форматной строки, запросов исполняемых вызовов,
переменных среды, и разных функций, которые часто имеют проблемы защиты. Лично я
не ожидал от скрипта таких возможностей 🙂 Кстати, на Perl написано множество
полезных программ, таких как cgi-сканеры, эксплоиты, и даже IDS системы!
Скачивай скриптик от сюда —

http://www.SecurityLab.ru/_exploits/other/qaudit.txt .

Между прочим

Что касается глобальной автоматизации, то автоматизировать можно все. Но
нужно ли это? Не всегда автоматизация помогает, так что ты сам должен решать
каждый раз как действовать. В статье я специально не рассмотрел популярный софт,
такой как XSpider, Hydra и им подобные, о них многие знают, да и писать бы
пришлось целую книгу. Более подробно о способах внутреннего обследования системы
можешь почитать в моей статье " ".

У нас очень часто надеются на “авось” и начинают бороться с последствиями, когда уже всё случилось. Особенно это касается информационной безопасности. Но зачем ждать, когда ваш компьютер взломают или заразят вирусом, если можно заранее решить все возможные проблемы. Мы в Qihoo 360 Technology Co много знаем про профилактику заражений и взломов и предлагаем вам воспользоваться нашим чек-листом, с помощью которого вы сами сможете проверить ваш компьютер.

Антивирусная проверка

Самое простое и самое первое средство проверки вашего компьютера на уязвимости - это его регулярное сканирование на предмет обнаружения вирусов и вредоносных программ. Современные антивирусы научились достаточно точно выявлять любые зловреды ещё на этапе их попыток внедрения в систему, но, однако, человеческий фактор ещё никто не отменял. По статистике большинство заражений компьютеров вирусами происходят именно по вине самих пользователей. Любой может случайно нажать “пропустить” на предупреждение антивируса и вот уже система заражена.

Так что лучше всего поставить в расписание антивируса регулярную полную проверку. И не забыть при этом все носители, которые вы используете, так как на них могут храниться копии вирусов. Если же вы опасаетесь, что система уже заражена, то мы бы рекомендовали провериться несколькими разными антивирусами. Или одним 360 Total Security, в состав которого входят такие известные антивирусные движки, как Avira, Bitdefender, облачный сканер 360 Cloud и QVM AI. В совокупности они справятся с самым хитрым заражением.

Оптимизация системы

Конечно, проверка уязвимостей не может ограничиваться одними лишь антивирусами. Существует множество программ, которые не определяются как вредоносные. Это так называемое рекламное ПО, надоедливые панели инструментов в браузере и hijacker-утилиты, которые меняют стартовые страницы, потенциально нежелательные программы (PUP) и так далее. Эти программы маскируются и даже выполняют некоторые полезные функции, но при этом позволяют себе загружать вашу систему в плане использования оперативной памяти и процессора, и ваш мозг в плане показа совершенно ненужной рекламы.

Подобный софт нужно удалять из установленных программ и, конечно, тщательно изучать запланированные задачи, автозагрузку и сервисы. Именно там они очень часто прячутся от обычных методов удаления. Если не проверить, то есть большой шанс, что через некоторое время эти программы вернутся в строй и продолжат своё чёрное дело. Антивирус 360 Total Security умеет автоматически определять и удалять подобный вредоносный софт и, вдобавок, отключать некоторые запланированные задания, ненужные службы, а также оптимизировать сетевое соединение. Причём антивирус даёт пользователю возможность самостоятельно выбрать исключения для оптимизации - таким образом, можно оставить в нетронутом виде те программы и утилиты, автозапуск которых по тем или иным причинам критичен.

Обновления ОС и программ

Разберёмся в самом понятии «уязвимость». В компьютерной безопасности оно используется для обозначения недостатка в ОС или программе, используя которую злоумышленник может нарушить работу системы или даже получить над нею контроль. Уязвимости возникают чаще всего из-за ошибок в программировании и лечатся патчами, которые выпускают разработчики.

Казалось бы, как может повлиять скрытая ошибка на её безопасность программного обеспечения. Так и думает обычный пользователь, запрещая операционной системе и программам автоматическое обновление. Однако, такая известная уязвимость, как переполнения буфера вполне может позволит злоумышленнику загрузить и выполнить произвольный машинный код от имени программы и с правами учетной записи, от которой она выполняется. А утечки памяти могут и без каких либо действий со стороны нарушить работу всей системы. Внедрение SQL-кода может дать возможность атакующему выполнить произвольный запрос к базе данных программы или сайта и получить возможность чтения или записи локальных файлов. И, конечно, как тут не упомянуть CSRF - «Межсайтовую подделку запроса». Этот вид атак применяется к посетителям сайтов и осуществляется путем размещения на веб-странице ссылки или скрипта, который может имитировать нормальную работу. Таким образом воруются пароли, личные данные и даже ваши деньги с банковских карт.

Часть всех уязвимостей должны закрываться администраторами серверов и сайтов, а вот другая только пользователями на своих компьютерах. Принцип: «вроде стабильно работает и ладно» здесь не работает и разработчики недаром выпускают обновления ПО. Это делается не только, чтобы добавить какие-то новые функции, но и закрыть ошибки, которые были обнаружены другими пользователями и профессиональными тестировщиками.

Уязвимости операционных систем представляют большую опасность, чем уязвимости отдельных программ, так как они гораздо сложнее и используются повсеместно. Закрываются они своевременной установкой обновлений безопасности, которые исправляют ошибки в уязвимых компонентах системы. В ОС Windows за это отвечает специальная служба “Центр обновления Windows”, которая в автоматическом режиме проверяет наличие новых обновлений устанавливает их, если, конечно, это не запрещено пользователем.

Уязвимости в программах меньше влияют на безопасность, чем уязвимости операционной системы. Но, например, ошибки безопасности в браузерах или офисных приложениях могут приводить к очень серьёзным последствиям. Устранять такие уязвимости необходимо и делается это либо вручную с сайтов разработчиков, либо через средства обновления, заложенные в сами программы.

В 360 Total Security мы встроили специальный механизм, которая проверяет операционную систему и установленные программы на апдейты. Этот сервис мониторит исполняемые файлы и саму ОС, сравнивает со специально базой и выдаёт рекомендации по обновлению.

Кроме того, бывает обратная ситуация и обновления нарушают работу системы. В нашем антивирусе вы можете посмотреть, какие патчи были установлены и удалить те, которые, по вашему мнению, могут вызывать ошибки.

Очистка системы и браузеров

Саму систему и браузеры, которые на данный момент являются одним из основных источников потенциальной опасности для вашего компьютера, время от времени необходимо чистить. Удалять временные файлы и следы вашей деятельности в интернете: историю посещений, cookie, сохранённые пароли. Так же следует проверять установленные расширения, среди которых могут быть элементы рекламного и следящего ПО.

Это важный пункт проверки вашего компьютера на уязвимости, потому что, удаляя весь этот мусор из системы, вы подчищаете все “хвосты” вирусов, от которых вы уже избавились. А вовремя удалённая история вашего браузера может сохранить в неприкосновенности ваши личные данные.

Все эти возможности входят в модуль “Очистка” в 360 Total Security. Он удаляет различный мусор вроде временных файлов, кэш-файлов браузеров, системного мусора и т.д… К тому же с помощью System Backup Cleaner можно очистить резервные копии драйверов и временные файлы обновлений. И вам не нужно устанавливать дополнительный софт. В процессе работы с антивирусом пользователь может проставить или снять хинты напротив временных файлов, которые следует или не стоит удалять (например, если вы не хотите чистить кэш браузера или опасаетесь удалять временные файлы Windows).

Защита в реальном времени

После проверки вашего компьютера и удаления всего лишнего, необходимо позаботиться о том, чтобы ваш компьютер был защищён от заражения на самых ранних этапах. Проверьте ваш антивирус на все возможные функции мониторинга системы в реальном времени. Конечно же, он должен проверять любые подключённые носители сразу при подключении. Когда-то давно вирусы успешно распространялись через USB-флешки и даже DVD-диски, копируя себя на компьютер. Времена немного изменились и даже простейшие антивирусы научились блокировать подобные угрозы, но всё же забывать о них никак нельзя.

Ваш антивирус должен уметь защищать веб-камеры от несанкционированного подключения, а клавиатуры от кейлогеров. Если вы, конечно, не хотите когда-нибудь увидеть ваше видео в трусах в сети или потерять всю личную информацию из почтового ящика или аккаунтов социальных сетей. Иной раз достаточно просто разрешить выполнение какому-либо с виду безопасному приложению на случайно обнаруженном сайте, и вот уже камера вашего ноутбука записывает всё, что происходит перед ноутбуком. А кейлогеры, которые могут маскироваться под вполне себе полезные программы, тут же сливают все набранные вами на клавиатуре символы в сеть. А на той стороне злоумышленник легко найдёт и набранные письма и логины с паролями, которые вы забивали.

Антивирус также просто обязан уметь проверять загружаемые файлы прямо на этапе их загрузки, а не после их запуска. И если уж продолжать тему браузеров, то вам, конечно, необходима защита при онлайн-покупках. Вы же не хотите потерять данные ваших банковских карт. 360 Total Security при включении этого режима блокирует операционную систему, чтобы предотвратить возможные угрозы или запуск неизвестных приложений, которые могут перехватывать сайты интернет-магазинов или онлайн-транзакции.

Запуск подозрительных программ в «песочнице»

Продолжая тему возможностей вашего антивируса, необходимо отдельно рассказать о такой возможности, как “песочница”. С помощью этой функции вы можете запустить потенциально опасные программы на вашем компьютере и не бояться, что это как-то повлияет на вашу систему. Ведь она запустится она в ограниченной среде, без доступа к сети и возможностью сообщаться с ОС. Если программа начнёт устанавливать вредоносное ПО или заменять системные файлы, то сработают защитные механизмы антивируса. Но так как вы запустили её в “песочнице”, то никаких последствий не будет. Если же программа безопасна, то её можно устанавливать в систему и работать.

Обязательно проверьте свой антивирус на все эти возможности. В 360 Total Security она есть.

Must read&save чек-лист для обязательной проверки уязвимостей

Антивирусная проверка - регулярная полная проверка по расписанию, контроль внешних устройств (флешки, карты памяти, внешние диски, гаджеты)

Обновления операционной системы и программ - обязательно проверять наличие и состав обновлений, накатывать полезные патчи

Очистка системы и браузеров - периодически чистить ненужные и неактуальные временные файлы, cookies, историю посещений и сохранённые пароли

Защита в реальном времени - защитить веб-камеру от несанкционированного доступа, отключить кейлогеры, проверять файлы при загрузке

Запуск подозрительных программ в «песочнице» - если нужная программа вызывает подозрение, запускать её в песочнице и устанавливать в систему только в случае её полной безопасности

Заключение

Как правило, большинство из того, что описано выше, выполняется разными программами. Клинеры очищают систему от мусора, антивирусы - от вредоносных программ. И если первые в большинстве своём бесплатны (и иногда несут на борту то самое рекламное ПО), то вторые вам придётся покупать, чтобы пользоваться всеми нужными функциями. Однако, наш

SQL инъекция - это один из самых доступных способов взлома сайта.
Суть таких инъекций – внедрение в данные (передаваемые через GET, POST запросы или значения Cookie) произвольного SQL кода. Если сайт уязвим и выполняет такие инъекции, то по сути есть возможность творить с БД (чаще всего это MySQL) что угодно.

Как вычислить уязвимость, позволяющую внедрять SQL инъекции?

Довольно легко. Например, есть тестовый сайт test.ru . На сайте выводится список новостей, с возможностью детального просомтра. Адрес страницы с детальным описанием новости выглядит так: test.ru/?detail=1 . Т.е через GET запрос переменная detail передаёт значение 1 (которое является идентификатором записи в табице новостей).

Изменяем GET запрос на?detail=1" или?detail=1" . Далее пробуем передавать эти запросы серверу, т.е заходим на test.ru/?detail=1 " или на test.ru/?detail=1 ".

Если при заходе на данные страницы появляется ошибка, значит сайт уязвим на SQL инъекции.

Пример ошибки, возникающей при проверке уязвимости

Возможные SQL инъекции (SQL внедрения)
1) Наиболее простые - сворачивание условия WHERE к истиностному результату при любых значениях параметров.
2) Присоединение к запросу результатов другого запроса. Делается это через оператор UNION.
3) Закомментирование части запроса.

Практика. Варианты взлома сайта с уязвимостью на SQL внедрения

Итак, у нас есть уже упоминавшийся сайт test.ru . В базе хранится 4 новости, 3 из которых выводятся. Разрешение на публикацию новости зависит от парметра public (если параметр содержит значение 1, то новость публикуется).

Список новостей, разрешённых к публикации

При обращении к странице test.ru/?detail=4 , которая должна выводить четвёртую новость появляется ошибка – новость не найдена.
В нашем случае новость существует, но она запрещена к публикации.

Но так как мы уже проверяли сайт на уязвимость и он выдавал ошибку БД, то пробуем перебирать возможные варианты запросов.
В адресной строке плюс (+) выполняет роль пробела, так что не пугайтесь

Тестирую следующие варианты:
test.ru/?detail=4+OR+1
test.ru/?detail=4+--
test.ru/?detail=4+UNION+SELECT+ *+FROM+news+WHERE+id=4

В итоге удача улыбнулась и два запроса (первый и третий) вернули нам детальное описание четвёртой новости

Разбор примера изнутри

За получение детального описания новости отвечает блок кода:
$detail_id=$_GET["detail"];
$zapros="SELECT * FROM `$table_news` WHERE `public`="1" AND `id`=$detail_id ORDER BY `position` DESC";

Мало того, что $detail_id получает значение без какой либо обработки, так ещё и конструкция `id`=$detail_id написана криво, лучше придерживаться `id`="$detail_id" (т.е сравниваемое значение писать в прямых апострофах).

Глядя на запрос, получаемый при обращении к странице через test.ru/?detail=4+OR+1

SELECT * FROM `news` WHERE `public`="1" AND `id`=4 OR 1 ORDER BY `position` DESC

Становится не совсем ясно, почему отобразилась 4-ая новость. Дело в том, что запрос вернул все записи из таблицы новостей, отсортированные в порядке убывания сверху. И таким образом наша 4-ая новость оказалась самой первой, она же и вывелась как детальная. Т.е просто совпадение.

Разбираем запрос, сформированный при обращении через test.ru/?detail=4+UNION+SELECT+*+FROM+news+WHERE+id=4 .

Тут название таблицы с новостями (в нашем случае это news) бралось логическим перебором.
Итак, выполнился запрос SELECT * FROM `news` WHERE `public`="1" AND `id`=4 UNION SELECT * FROM news WHERE id=4 ORDER BY `position` DESC . К нулевому результату первой части запроса (до UNION) присоединился результат второй части (после UNION), вернувшей детальное описание 4-ой новости.

Защита от SQL инъекций (SQL внедрений)

Защита от взлома сводится к базовому правилу «доверяй, но проверяй». Проверять нужно всё – числа, строки, даты, данные в специальных форматах.
Числа
Для проверки переменной на числовое значение используется функция is_numeric(n);, которая вернёт true, если параметр n - число, и false в противном случае.
Так же можно не проверять значение на число, а вручную переопределить тип. Вот пример, переопределяющий значение $id, полученное от $_GET["id_news"] в значение целочисленного типа (в целое число):
$id=(int)$_GET["id_news"];
Строки
Большинство взломов через SQL происходят по причине нахождения в строках «необезвреженных» кавычек, апострофов и других специальных символов. Для такого обезвреживания нужно использовать функцию addslashes($str);, которая возвращает строку $str с добавленным обратным слешем (\) перед каждым специальным символом. Данный процесс называется экранизацией.

$a="пример текста с апострофом " ";
echo addslashes($a); //будет выведено: пример текста с апострофом \"

Кроме этого существуют две функции, созданные именно для экранизации строк, используемых в SQL выражениях.
Это mysql_escape_string($str); и mysql_real_escape_string($str);.

Первая не учитывает кодировку соединения с БД и может быть обойдена, а вот вторая её учитывает и абсолютно безопасна. mysql_real_escape_string($str); возвращает строку $str с добавленным обратным слешем к следующим символам: \x00, \n, \r, \, ", " и \x1a .

Магические кавычки

Магические кавычки – эффект автоматической замены кавычки на обратный слэш (\) и кавычку при операциях ввода/вывода. В некоторых конфигурациях PHP этот параметр включён, а в некоторых нет. Для того, что бы избежать двойного экранизирования символов и заэкранизировать данные по-нормальному через mysql_real_escape_string($str);, необходимо убрать автоматические проставленные обратные слеши (если магические кавычки включены).

Проверка включённости магических кавычек для данных получаемых из GET, POST или Куков организуется через функцию get_magic_quotes_gpc(); (возвращает 1 – если магические кавычки включены, 0 – если отключены).

Если магические кавычки вкючены (т.е обратные слеши добавляеются) и такое встречается чаще, то их нужно убрать. Это делается через функцию stripslashes($str); (возвращает строку $str без обратных слешей у кавычек и прямых апострофов).

В закючении привожу код с полной экранизацией строк для записи в БД

If(get_magic_quotes_gpc()==1)
{
$element_title=stripslashes(trim($_POST["element_title"]));
$element_text=stripslashes(trim($_POST["element_text"]));
$element_date=stripslashes(trim($_POST["element_date"]));
}
else
{
$element_title=trim($_POST["element_title"]);
$element_text=trim($_POST["element_text"]);
$element_date=trim($_POST["element_date"]);
}

$element_title=mysql_real_escape_string($element_title);
$element_text=mysql_real_escape_string($element_text);
$element_date=mysql_real_escape_string($element_date);

Статья была подготовлена на основе практических навыков по защите веб-систем. Теория дело хорошее, но практика важнее и главное она работает.

С помощь этих сервисов можно самопровериться на различные уязвимости в браузерах,плагинах, антивирусах, Java…. После проверки сразу) можно увидеть отчет о имеющихся уязвимостях и обновить (кроме 4-го)ПО до последних возможной версии.

Бесплатный онлайн сервис проверки безопасности браузера и плагинов, поиская их уязвимостей, разработка компании Positive Technologies. Если SurfPatrol обнаруживает небезопасные версии плагинов/браузера, то это означает потенциальную опасность для проникновения вредоносного кода на компьютер пользователя — в таком случае сревис предлагает скачать последние версии браузера или плагина.

Смысл тот же что и surfpatrol, но у BrowserCheck больший охват проверяемого ПО - от операционной системы и браузера до плагинов и дополнений. BrowserCheck поддерживает большинство современных конфигураций, начиная с Windows 2000 и выше, а также Mac OS X. После проверки вы увидите интуитивно понятный отчет. При обнаружении проблем BrowserCheck предложит перейти по ссылке и установить необходимые обновления.

F-Secure Health Check представляет собой бесплатный онлайн сервис, который определяет состояние защиты компьютера и также позволяет устранить возможные проблемы с безопасностью. После проверки подскажет нужно ли чтото обновить или нет.Пришлось повозиться и честно говоря мне этот сервис НЕнравится. Для его использования необходимо установитьActive X компонент, потом Java плагин и для их установки чтобы (!) проверить насколько безопасно настроена моя ОС и какие есть не устраненные уязвимости нужно отключить все что можно — антивирус, файрвол, политику SRP ! Это же епта гениальнО!!! о_0 Тестировал сервис в IE , Opera, Chrome. Во всех браузерах ведет себя по разному, каждый со своими глюками. Полезность данного сервиса под вопросом.