Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Безопасен ли скрипт?
 
 автор: nikolayers   (12.06.2011 в 02:51)   письмо автору
 
 

В видеокурсе попва увидел скрипт lock.php:

<?php
 
include ("bloks/bd.php"); /* соединение с БД*/
 
if (!isset($_SERVER['PHP_AUTH_USER']))
  {
         
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
         
Header ("HTTP/1.0 401 Unauthorized");
         exit();
 }
 else {
         if (!
get_magic_quotes_gpc()) {
                 
$_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
                 
$_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
         }
         
$query "SELECT pass FROM userlist WHERE user='".$_SERVER['PHP_AUTH_USER']."'";
         
$lst = @mysql_query($query);
         if (!
$lst)
         {
             
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
         
Header ("HTTP/1.0 401 Unauthorized");
         exit();
         }
         if (
mysql_num_rows($lst) == 0)
         {
           
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
           
Header ("HTTP/1.0 401 Unauthorized");
           exit();
         }
        
$pass =  @mysql_fetch_array($lst);
         if (
$_SERVER['PHP_AUTH_PW']!= $pass['pass'])
         {
             
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
           
Header ("HTTP/1.0 401 Unauthorized");
           exit();
         }
 }
 
?>

В инете вычитал что он уязвим к sql-Иньекциям, но почему?

  Ответить  
 
 автор: cheops   (12.06.2011 в 12:27)   письмо автору
 
   для: nikolayers   (12.06.2011 в 02:51)
 

Да, при определенном режиме это возможно, здесь, нужно заменить конструкцию
<?php
  
...
         if (!
get_magic_quotes_gpc()) { 
                 
$_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']); 
                 
$_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']); 
         }
  ...
?>
на
<?php
  
...
         
$_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']); 
         
$_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']); 
  ...
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования