דָּוִדdavidov777 (daviddavidov777) wrote,
דָּוִדdavidov777
daviddavidov777

Oktogo.ru

1. Защита от SQL injection

Допустим у вас есть вебсайт с формой ввода имени пользователя. Для проверки наличия имени в базе данных вы используте вот такой код:
$query = "SELECT * FROM `Users` WHERE UserName='" . $_POST["Username"]. "'";
mysql_query($query);

где $_POST[«Username»] — введенное пользователем имя.

Пользователю достаточно ввести вот такое значение в поле Username
' or '1'='1

чтобы получился запрос, который всегда возвращает данные:
SELECT * FROM `Users` WHERE UserName = '' OR '1'='1'

Для тех баз данных, которые поддерживают выполнение несколько запросов в одном пакете, злоумышленник может исполнить запрос удаляющий или изменяющий данные.

Пример такого ввода:
a';DROP TABLE `Users`; SELECT * FROM `userinfo` WHERE 't' = 't


Запрос на выходе:
SELECT * FROM `Users` WHERE `UserName` = 'a';DROP TABLE `Users`; SELECT * FROM `userinfo` WHERE 't' = 't'

Два основных способа избежать SQL injection:
параметризованные запросы

Наиболее надежный метод, но не всегда подходит. В PHP можно для этой цели использовать MySQLi
$stmt = $db->prepare('update people set name = ? where id = ?');
$stmt->bind_param('si',$name,$id);
$stmt->execute();

escaping

В PHP для этого есть функция mysql_real_escape_string, которая заменит опасные символы на escape последовательности. Наш пример теперь будет выглядеть вот так:
$query = sprintf("SELECT * FROM `Users` WHERE UserName='%s'",
mysql_real_escape_string($_POST["Username"]));
mysql_query($query);


2. Защита от Сross Site Scripting (XSS)

XSS уязвимости могут быть подвержены динамические вебсайты, где пользователи вводят какие-то свои данные, которые потом будут показаны на странице: форумы, гостевые книги, комментарии блогам и другое. Идея XSS заключается во встраивании в текст комментария какого-то Javascript кода, который исполнится, когда страницу откроет другой пользователь.

Чем может навредить безобидный джаваскрипт? Довольно многим, от открытие левых сайтов в попапе или простого завешивания браузера до воровства куки. Последнее уже может привести к выполнению другим пользователем действий на этом сайте от вашего имени. Рассмотрим минимальный пример.

Форма для ввода текста:







Файл showResults.php:
echo("You typed this:");
echo($_POST['myText']);


Мы видим, что введенный текст никак не обрабатывается и выводится на страницу в исходном виде. Теперь рассмотрим такой пример ввода:


Нетрудно видеть, что javascript код исполнится после сабмита формы. Лечится пропусканием ввода через htmlentities() непосредственно перед показом:
echo("You typed this:");
echo(htmlentities($_POST['myText']));
Недавно на просторах интернета было мной замеченно
Oktogo.ru интересный очень сайт.Советую вам тоже туда обращаться!
дизайн сайта по сравнению с первой версией стал намного прикольнее, удобнее и понятнее - ничего лишнего. Простой, светленький, со вкусом. Зашел, поискал гостиницу, отобрал варианты, сравнил цены и если понравилось забронировал. Быстро и удобно. Пилотная версия сервиса бронирования отелей и каталога отелей была так себе. Багов не было, но по дизайну фиговенько.

для тех кто еще не был на Oktogo.ru то можете свободно обращаться туда по ссылке!
Tags: октого ру.
Subscribe

  • New age.................

    Заниматься еще больше торговлей!Понять куда пойдет тренд. Учиться , как можно больше задавать как можно больше вопросов.не терять время на всякую…

  • music

  • мысленное масленное

    ищу выход из ситуации которая волнует меня уже 2 года. Уверен уже в ближайшее время будет найден выход.Независимо от результата, у меня не остается…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments