Интернет - справочник для веб-мастеров
    441-847-152
     
 
 
php, javascript,ajax,mysql,TIGER CMS
  Для начинающих
php, javascript,ajax,mysql,TIGER CMS
  Общие
php, javascript,ajax,mysql,TIGER CMS
  Безопасность
php, javascript,ajax,mysql,TIGER CMS
  Интересное
php, javascript,ajax,mysql,TIGER CMS
  Новости PHP
php, javascript,ajax,mysql,TIGER CMS
  PHP + AJAX
php, javascript,ajax,mysql,TIGER CMS
  JavaScript
php, javascript,ajax,mysql,TIGER CMS
  Дизайн
php, javascript,ajax,mysql,TIGER CMS
  Раскрутка
php, javascript,ajax,mysql,TIGER CMS
  Заработок
php, javascript,ajax,mysql,TIGER CMS
  Советы

   
 

   
 
  SEO статьи HTML, как раскрутить сайт
1. Рейтинг сайтов



 
 
  Всего статей: 405
  Опубликовано: 405
  Проверяються: 0
  Добавлено сегодня: 0
-------------------------------------
  Прочитано статей: 405
  Всего прочтений: 155938
-------------------------------------
  Сейчас читают: 6 чел.


 

Безопасность интернет-приложений [Версия для печати]
Разместил: admin . Раздел: Безопасность. Опубликовано: 07-26-2007 19:46:50
Собственно, это статья о трех больших проблемах в безопасности подавляющего числа "самодельных" скриптов.

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 будет варьироваться вред, который сможет причинить злоумышленник. Если, конечно, он угадает название переменной и ее значение.
Источник: http://www.internet-technologies.ru/   Прочитана 516 раз.
  Закладки:  
     
     
     
Google
 




     
Copyright 2007 by bvisoft.com