protectionУважаемые пользователи Find-XSS.net, сегодня мы расскажем Вам об основных способах защиты сайта от XSS и SQL injection. Не секрет, что именно этот вопрос наиболее сильно интересует посетителей нашего ресурса. Отметим, главное - обнаружить имеющиеся на сайте уязвимости, все остальное не представляет особой сложности. Фактически речь сейчас пойдет о нескольких функциях, которые экранируют параметры, полученные от пользователя, таким образом, что данные параметры становятся абсолютно безопасны. 
Предлагаем Вашему вниманию список функций (список неполный, но указанных функций вполне достаточно), которые помогут Вам защитить Ваш сайт: intval(), floatval(), addslashes(), htmlentities(). Начнем с intval(). Если в SQL запросе (или при выводе на страницу) участвует (или предполагается, что участвует) целое число, то все, что от Вас требуется - обозначить функцию так intval($param), где $param и есть небезопасный параметр. Рассмотрим 2 примера:
 
Если было так - echo $_GET['year'];
То меняем на - echo intval($_GET['year']);
А если было так - mysql_query("select* from users where user_id=".$_GET['id']);
То должно быть так - mysql_query("select* from users where user_id=".intval($_GET['id'])).
Для целых чисел это более чем достаточно.  
 
Функция floatval() используется так же как и intval(), только для цифр с плавающей точкой.  
 
Функция addslashes() используется для экранирования строк. Рассмотрим следующий пример:
 
Если было так - mysql_query("select* from users where nick='".$_GET['nick']."'");
То меняем на - mysql_query("select* from users where nick='".addslashes($_GET['nick'])."'");
Важно - кавычки обязательны, так как такой код уязвим:
mysql_query("select* from users where nick=".addslashes($_GET['nick'])).
 
Функция htmlentities() используется, как видно из названия, для преобразования всех HTML-тегов в кодовый вид. По сути < меняется на &lt;, > на &gt; и тд. Данное преобразование позволяет отобразить HTML-код на странице. Рассмотрим следующий пример:
 
Если было так - echo $_GET['nick'];
То меняем на - echo htmlentities($_GET['nick'], ENT_QUOTES).
 
ENT_QUOTES преобразует кавычки в кодовый вид. Иногда для корректной работы требуется еще третий параметр, кодировка страницы. Поэтому пример полного использования функции может иметь такой вид - echo htmlentities($_GET['nick'], ENT_QUOTES, 'UTF-8'). Если все получаемые от пользователя данные экранируются вышеуказанным способом, то код можно считать безопасным.  
Как Вы видите сами, на самом деле все очень просто, гораздо труднее найти уязвимость, но, к счастью, для этого у Вас уже есть все, что Вам нужно - XSS-сканер.
 
Желаем Вам поменьше проблем с безопасностью Ваших проектов!
С уважением, команда разработчиков Find-XSS.net.