Web - Club  Веб-программирование, оптимизация, интернет

 

 

 

Навигация
Инфо-блок

Внимание! На форум требуются модераторы.

forum

Темы: продвижение сайтов в ПС, интернет-программирование, дизайн, сети и интернет-технологии.

Разделы форума:

О форуме...
Яндекс
Google
Rambler и другие
Каталоги, рейтинги
Ссылки: покупка, продажа
Контекст реклама, баннерные сети
Серверное программирование
Уголок дизайнера
Стол заказов, анонс проектов
Системы управления сайтом
Системы управления сайтом free
Общий раздел
Домены
Хостинг


Приглашаем Вас на наш форум!

 

 

 

Безопасность интернет-приложений

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

1. Возможность SQL-injection . Внимательно изучите этот кусок кода (PHP):

<?

$conn = mysql_connect("localhost", "zz", "zz");
mysql_select_db("test", $conn);

$sql = "SELECT adminpwd FROM data WHERE login='$login' ";
$a = mysql_query($sql, $conn);
$z = mysql_result($a, 1);

...

Допустим, скрипт называется script.php и параметр login передается ему в виде script.php?login=ssss . Вы видите, что параметр login никак не проверяется. А что будет, если вместо login=admin передать login='admin ? Будет ошибка SQL-запроса, ведь к базе данных передается запрос SELECT adminpwd FROM data WHERE login=''admin' .

В такой ситуации злоумышленник может исполнить любой SQL-запрос (использовав, например union).

Защита от этого предельно проста: использовать функцию mysql_escape_string($string);

2. Возможность исполнения произвольной команды . Необходимо всегда проверять включаемые файлы, особенно не рекомендуется использовать include($inc), если переменная $inc передается через адресную строку.

3. Возможность переопределения переменных . Возьмем такой пример:

<?
$file=file("zz.txt");
$cc=count($file);
$c = 0;
while($c < $cc) {
$f .= $file[$c++];
}

...

?>

Допустим, что $f в конце цикла содержит какую-нибудь важную информацию из файла. Или, что еще хуже, она исполняется командой cmd($f);

Так как переменная $f не определена в начале скрипта (должно быть $f="";), то ее начальное значение может определить пользователь (введя в адресной строке что-нибудь вроде script.php?f=ddddd).

В зависимости от важности переменной $f будет варьироваться вред, который сможет причинить злоумышленник. Если, конечно, он угадает название переменной и ее значение.

Автор: Дроздовский Михаил

 

 
(C) WEB - клуб. Все о интернет. Все права принадлежат их авторам. При перепечатке материала ссылка на Web - клуб обязательна.

 

Rambler's Top100  

Коттеджное строительство:коттеджи,строительство элитных котеджей . Лучшие цены на пластиковые окна в кредит Подключим прямо сейчас! Выделенная линия здесь, поддержка и настройка