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

Форум PHP

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

 

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

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

тема: как обезопасить подключаемый скрипт от атаки
 
 автор: Bvz   (05.09.2009 в 00:55)   письмо автору
 
 

есть адресная строка, например index.php?module=service
по в зависимости от параметров GET подключается тот или иной модуль, как обезопасить подключение скрипта от атаки

                <?php
                
                    
// идентификация модуля
                    
if(!get_magic_quotes_gpc())
                        {
                             
$module mysql_escape_string($_GET['module']);
                        }
                    else
                        {
                            
$module $_GET['module'];
                        }

                    
// вызов модуля
                    
$link $module.".php";
                    if (
file_exists("include/".$link))
                        {
                            include(
"include/".$link);
                        }
                    else
                        {
                            echo 
$error;
                        }
                
?>

  Ответить  
 
 автор: root   (05.09.2009 в 00:59)   письмо автору
 
   для: Bvz   (05.09.2009 в 00:55)
 

а Вы как думаете, какое отношение к этому имеет mysql ( в частности mysql_escape_string )?

  Ответить  
 
 автор: @ndry   (05.09.2009 в 01:00)   письмо автору
 
   для: Bvz   (05.09.2009 в 00:55)
 

Для начала очень полезно не разрешать вообще ситуации где данные полученые от пользователя вставляются в инклуд.

Как крайность можно фильтровать строку:
$str = preg_replace("#[^0-9a-zA-Z_\-]*#", "", $str); // вроде так, писал код непосредственно в комменте


P.S. Экранирование строки через mysql_escape_string там ну явно лишнее...

  Ответить  
 
 автор: mihdan   (05.09.2009 в 12:09)   письмо автору
 
   для: Bvz   (05.09.2009 в 00:55)
 

Насколько я понимаю количество модулей ограничено? Если да, то

<?php
$module 
= (isset($_GET['module'] && !empty($_GET['module'])) ? $_GET['module'] : 'main';
$modules = array('guestbook''news', ..., 'services');
if (!
in_array($module$modules)) $module 'main';
include_once 
'include/'.$module.'.php';
?>

  Ответить  
 
 автор: Trianon   (05.09.2009 в 13:02)   письмо автору
 
   для: Bvz   (05.09.2009 в 00:55)
 

Читаю тему "как обезопасить подключаемый скрипт от атаки" и текст "как обезопасить подключение скрипта от атаки" .
А меж тем атаке подвергается скрипт подключающий.

Что же Вы всё таки хотите обезопасить?

Вот я с удовольствием бы обезопасил моск. Но ведь не дадите...

  Ответить  
 
 автор: Bvz   (05.09.2009 в 13:16)   письмо автору
 
   для: Trianon   (05.09.2009 в 13:02)
 

))) подключающий скрипт не правильно выразился, спасибо за поправку

  Ответить  
 
 автор: Bvz   (07.09.2009 в 14:32)   письмо автору
 
   для: Bvz   (05.09.2009 в 13:16)
 

вопрос в силе!

  Ответить  
 
 автор: Trianon   (07.09.2009 в 14:59)   письмо автору
 
   для: Bvz   (07.09.2009 в 14:32)
 

Вам же @andry ответил.
Для начала очень полезно не разрешать вообще ситуации где данные полученые от пользователя вставляются в инклуд.

сто процентов. Ни убавить, ни прибавить.

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

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