ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 11.12.2007, 14:31
guest3297
Banned
Регистрация: 27.06.2006
Сообщений: 1,614
Провел на форуме:
3887520

Репутация: 2996


По умолчанию

фильтры работающие таким образом несовершенны смотри защиту sweb
 
Ответить с цитированием

  #12  
Старый 11.12.2007, 15:03
VampiRUS
Участник форума
Регистрация: 31.12.2005
Сообщений: 231
Провел на форуме:
1106266

Репутация: 366
Отправить сообщение для VampiRUS с помощью Yahoo
По умолчанию

PHP код:
function sql_query(){
        unset(
$this->result);
        
$args func_get_args();
        
$tmpl =& $args[0];
        
$tmpl str_replace("%""%%"$tmpl);
        
$tmpl str_replace("?""%s"$tmpl);
    
        foreach (
$args as $i=>$v){
            if (!
$i) continue;        // это шаблон
            
if (is_int($v)) continue; // целые числа не нужно экранировать
            
$args[$i] = "'".mysql_real_escape_string($v)."'";
        }

        
$args[count($args)] = 'UNKNOWN_PLACEHOLDER';
        
$query=call_user_func_array("sprintf"$args);
        
$this->result=@mysql_query($query) or die(mysql_error());
        return 
$this->result;
    } 
вот метод класса обёртка, приемущество в том, что нет возможности забыть провести проверку входных данных.
 
Ответить с цитированием

  #13  
Старый 11.12.2007, 17:30
VampiRUS
Участник форума
Регистрация: 31.12.2005
Сообщений: 231
Провел на форуме:
1106266

Репутация: 366
Отправить сообщение для VampiRUS с помощью Yahoo
По умолчанию

[ cash ]мож я туплю (только сейчас просмотрел код (: ) , непонял назначение т.е. каждый запрос прогоняем и смотрим визуально правильно написали или нет?(хотя подсветка мне понравилась + )
по коду, думаю надо регулярки с модификатором /i
и в [\d0-9]+ помойму что то одно лишнее.
 
Ответить с цитированием

  #14  
Старый 11.12.2007, 18:50
}{0TT@БЬ)Ч
Постоянный
Регистрация: 20.01.2006
Сообщений: 302
Провел на форуме:
3536885

Репутация: 447
По умолчанию

вот собственно по сабжу, сам батька nerezus писал)))))
http://forum.antichat.ru/thread30641.html
 
Ответить с цитированием

  #15  
Старый 11.12.2007, 19:15
Digimortal
Banned
Регистрация: 22.08.2006
Сообщений: 608
Провел на форуме:
6144796

Репутация: 1095


По умолчанию

Цитата:
Сообщение от [ cash ]  
Можно легко обезапасить любю cms поставив грамотную фильтрацию, так что если вы не уверненны в своем движке или в чужом просто просто проводите все запросы через эту функцию.

PHP код:
<?

error_reporting
(0);

function 
HLSQL($Query)
{
    
$Query=preg_replace("/(\s{1})(JOIN)/""\\1\nJOIN"$Query);
    
$Query=preg_replace("/([^a-zA-Z]{1})([\d0-9]+)/""\\1<span style=\"color:6666CC\">\\2</span>"$Query);

    
$Query=preg_replace("/('[^']+')/""<span style=\"color:FF9900\">\\1</span>"$Query);
    
$Query=preg_replace("/(#.*\n)/""<span style=\"color:999999\">\\1</span>"$Query);
    
$Query=preg_replace("/FROM[\s+](\S+)\s/""FROM <span style=\"color:339900;text-decoration:underline\">\\1</span> "$Query);

    
$Query=preg_replace("/JOIN[\s+](\S+)\s/""JOIN <span style=\"color:339900;text-decoration:underline\">\\1</span> "$Query);
    
$Query=preg_replace("/(COUNT|SUM)\(([^\)]+)\)/""<span style=\"color:FF0000;font-weight:bold\">\\1</span>(\\2)"$Query);


    
$Query=preg_replace("/\s{1}(FROM|JOIN|GROUP|WHERE|ORDER|LIMIT|AND|ON)\s{1}/"" <span style=\"color:0000FF;font-weight:bold;\">\\1</span> "$Query);
    
$Query=preg_replace("/\s{1}(BY|OR|AS|IN|BETWEEN)\s{1}/"" <span style=\"color:000000;font-weight:bold;\">\\1</span> "$Query);
    
$Query=preg_replace("/(SELECT)/"" <span style=\"color:0000FF;font-weight:bold;\">\\1</span> "$Query);
    
$Query=preg_replace("/\(/""<span style=\"font-weight:bold;\">(</span>"$Query);
    
$Query=preg_replace("/\)/""<span style=\"font-weight:bold;\">)</span>"$Query);


    return 
"<p style=\"color:000000; font-size:12px;\">".nl2br($Query)."</p>";
}

?>
>> Можно легко обезапасить любю cms поставив грамотную фильтрацию

с каких это пор функции для подсветки синтаксиса кода стали "грамотной фильтрацией" ? +))

>> просто проводите все запросы через эту функцию.

ога, я бы посмотрел на такую cms.. +)

Последний раз редактировалось Digimortal; 11.12.2007 в 19:19..
 
Ответить с цитированием

  #16  
Старый 11.12.2007, 23:38
Meanor
Познающий
Регистрация: 09.09.2007
Сообщений: 66
Провел на форуме:
188412

Репутация: 41
По умолчанию

А если в каждый скрипт (или в тот, который вызывается в каждом):
PHP код:
foreach ($_GET as $check_url) {
   if (!
preg_match("/[a-zA-Z0-9]/",$check_url)) {
   die (
"access forbidden");
   }
}
unset(
$check_url); 
Это только для Get, для постов надо настроить по своему регулярное выражение...

Последний раз редактировалось Meanor; 11.12.2007 в 23:41..
 
Ответить с цитированием

  #17  
Старый 12.12.2007, 15:50
k8^cat.YOU
Новичок
Регистрация: 12.07.2007
Сообщений: 13
Провел на форуме:
76147

Репутация: 32
По умолчанию

2 Enot and Meanor, use $_REQUEST.

$query = $_POST['query']; -> $query = $_REQUEST['query'];
....

foreach ($_REQUEST as $check_url)
....

куки, пост, гет, файл - все в одной куче


PS. хотя..... я права насчет REQUEST или как?
 
Ответить с цитированием

  #18  
Старый 12.12.2007, 18:44
.:EnoT:.
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме:
4832771

Репутация: 1916


По умолчанию

Цитата:
2 Enot and Meanor, use $_REQUEST.

$query = $_POST['query']; -> $query = $_REQUEST['query'];
....

foreach ($_REQUEST as $check_url)
....

куки, пост, гет, файл - все в одной куче
Ну это личное дело каждого. Лично я предпочитаю какой метод использую, такой и указываю,мне так проще)

Цитата:
PS. хотя..... я права насчет REQUEST или как?
Насчёт $_REQUEST при использовании POST и GET да.
К кукам это совсем не относится, там HTTP_COOKIE_VARS масть держит))
 
Ответить с цитированием

  #19  
Старый 13.12.2007, 05:06
VampiRUS
Участник форума
Регистрация: 31.12.2005
Сообщений: 231
Провел на форуме:
1106266

Репутация: 366
Отправить сообщение для VampiRUS с помощью Yahoo
По умолчанию

.:EnoT:. ты отстал от жизни теперь уже $_COOKIE
Цитата:
php.net
Переменные, передаваемые скрипту через HTTP cookies. Аналог старого массива $HTTP_COOKIE_VARS (который по-прежнему доступен, но не рекомендуется).
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обнаружение Sql инъекций в Oracle, часть вторая k00p3r Чужие Статьи 0 13.06.2005 11:26
Sql инъекция и Oracle, часть первая k00p3r Чужие Статьи 0 13.06.2005 11:23
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48
SQL Injection для чайников, взлом ASP+MSSQL k00p3r Чужие Статьи 0 12.06.2005 12:42
SQL Injection в Oracle k00p3r Чужие Статьи 0 12.06.2005 12:41



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ