Безопасность интернет-приложений - SVDpro.info
Вы не авторизированы! Логин:  Пароль:  Запомнить:    Зарегистрироваться
Забыл пароль
 
 
 

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

SVD programming - Программирование Delphi, HTML, PHP, CGI. Обзоры софта, ReactOS и многое другое...
 
Главная - Новости - Публикации - Файлы - Ссылки - Форум Обратная связь
 


Друзья сайта ::

Сайтом управляют ::

Друзья сайта ::
PHP » Безопасность интернет-приложений
Автор: Дроздовский Михаил / Дата: 16:22 17.06.2006
Комментарии: Комментарии (0)
Рейтинг статьи: 0
Собственно, это статья о трех больших проблемах в безопасности подавляющего числа "самодельных" скриптов.

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 будет варьироваться вред, который сможет причинить злоумышленник. Если, конечно, он угадает название переменной и ее значение.

Автор : Дроздовский Михаил
Комментарии: Комментарии (0)

Внимание!

Друзья сайта
Голосование ::
Случайные статьи ::
Добавления в форуме ::
Новые комментарии ::
Пользователи on-line ::
0 пользователь, 26 гостей
 
Страница создана за 0.018 секунд

SQL общее время: 0.007 секунд
SQL запросов всего: 14
Администрация сайта не несет ответственности за содержание рекламных материалов, а так же за информацию размещаемой посетителями. При использовании материалов сайта ссылка на svdpro.info обязательна.

Powered by LDU 802

Рейтинг@Mail.ru
Copyright © 2005 - 2011 «SVD Programming»
Версия сайта для коммуникаторов
Обратная связь - Карта сайта