чистка переменных +)

t3[0one]

Новичок
чистка переменных +)

PHP:
function clear(&$a){
	if (is_array($a)){
		foreach ($a as $v){
			$out[]=addslashes(htmlspecialchars($v));
		}
	}else{
		$out=addslashes(htmlspecialchars($a));
	}
$a=$out;
}
хватит ли такой функции для чистки ? )
что бы атака вирус , троянских к0ней не была успешно завершина !
 

rotoZOOM

ACM maniac
addslashes(htmlspecialchars($v));

Сильная конструкция :)))
Ты определись, где именнно будешь использовать эту самую
переменную $a, исходя из этого и строй защиту.
И очепятку убери из второй ветви условия.
 

t3[0one]

Новичок
GET и POST ... хотя можно облечить ))спасибо )
стараюсь не использовать спец сивалы ))
PHP:
function clear(&$a){
    if (is_array($a)){
        foreach ($a as $v){
            $out[]=addslashes(htmlspecialchars($v));
        }
    }else{
echo "Only  POST/GET";
}
$a=$out;
}
в теле основного скрипта!
PHP:
if (!isset($_POST){
clear($_POST);
}elseif (!isset($_GET)){
clear($_GET);
}
меня еще беспакоит конструкция sql запросов с символами --
 

messerschmitt

Новичок
Автор оригинала: t3[0one]
PHP:
if (!isset($_POST){
clear($_POST);
}elseif (!isset($_GET)){
clear($_GET);
}
Толково придумано. :D
Тебе ж сказали: "Ты определись, где именнно будешь использовать эту самую переменную $a, исходя из этого и строй защиту."
 

t3[0one]

Новичок
да и кроме этого всего я не хочу что бы у меня там болталась всякая бяка типа [>], [<] и тп . так как я часто запысываю html код в базу , потом гемарои с XSS появляются.
messerschmitt
у меня очень много скриптов праходят через index.php , вернее даже все +) следовательно я делаю так и забываю про фильтрацию.

про кавычки и тп это понятно было сразу...
Вопрос о замене симвалов [']["] на [--] в sql запросах

-~{}~ 14.04.05 07:45:

А фильтровать надо всё ))) Кто то сказал на этом форуме "Золотой правело проверять всё от клиента " +)
 

rotoZOOM

ACM maniac
Пишешь в базу - экранируй кавычки.
Выводишь в html - htmlspecialchars
Подгружаешь куски кода в зависимости от введнных данных,
проверяй их switch или if и.т.д
А все вместе валить в одну кастрюлю, ты потом сам запутаешься ...
 

t3[0one]

Новичок
ok спс )) тем немение на вопрос не ответили +)
вот пример инекции в пхп нюке

modules.php?name=Downloads&d_op=viewdownload&cid=2%20UNION%20select%20counter,%20aid,%20pwd%20FROM%20nuke_authors%20--

сдесь не использовано не одной кавычки
 

neko

tеam neko
это потому что очевидно запрос в нюке на который это нацелено их так же не использует
если кто-то думает что вся проблема в кавычках, то он как бы это помягче выразиться.. не прав в общем
 

t3[0one]

Новичок
а че тат целится ? обчная выборка WHERE cid=$_GET['cid'] и даже есле
WHERE cid='.$_GET.' то конец запроса обрубается /*
хотя... хз )) поэтому и спрашиваю )
 

rotoZOOM

ACM maniac
t3[0one]
Тот запрос который ты представил не принесет никакого вреда, если при подстановке в SQL ты его обуешь в кавычки.
Если же поле не текстовое (и ты об этом знаешь), то осуществляй проверку введенных данных.
 

t3[0one]

Новичок
проверка на UNION можно сделать... че еще можно замутить ?

-~{}~ 14.04.05 08:28:

хотя можно делать в ['] в такие только

-~{}~ 14.04.05 08:29:

как бы итог вопроса сделать максимум безопасно и максимум быстро )
 

Фанат

oncle terrible
Команда форума
такогй концентрации бреда системы "слышал звон, да не знаю, где он" я не видел давно.
так как я часто запысываю html код в базу , потом гемарои с XSS появляются.
"гемарои" появляются НЕ В БАЗЕ
"Золотой правило проверять всё от клиента "
слушать надо ухом, а не брюхом. ПРОВЕРЯТЬ.
а не вешать от балды кучу функций, смысла которых ты не знаешь.
проверка на UNION можно сделать
слушай, ты ВООБЩЕ слушаешь, что тебе говорят? Тебе сказали - если делать запросы по-человечески, как написано по ссылке, которую тебе дали, то никакой проблемы не будет. Не нужны, значит, никакие "проверка на UNION". Доходит? Алё дома кто-нибудь есть?
тем немение на вопрос не ответили
тем не менее, на вопрос тебе ответили, и не раз.
ты определись - или ты слушаешь, что тебе говорят, и беспрекословно выполняешь, без своих ламерских рассуждений, либо не надо задавать здесь вопросы вообще.
 

Фанат

oncle terrible
Команда форума
я рад, что на тебя подейстовало.
другими методами, я смотрю, ты не понимаешь.
фонтан "умных рассуждений" хоть ненадолго заткнулся

-~{}~ 14.04.05 09:09:

итак, возвращаемся к основному вопросу.
1. для защиты ЗАПРОСОВ в БД требуется прочитать текст, ссылку на который тебе дали, и сделать всё так, как там написано.
он гарантирует безопасность бд, что бы ты там себе, ковыряя в носу, ни воображал.

2. для защиты от XSS, И НЕ ТОЛЬКО. А по стандарту, и для того, чтобы твои скрипты работали корректно, выводимые данные надо обрабатывать через htmlspecialchars. ПРИ ВЫВОДЕ. Не только те, которые тебе заслали, но и любые другие. Данные.
вот и обрабатывай. при выводе.

3. "максимально быстро" защиты не пишутся. то, что перечислено выше - это всего лишь правила гигиены. от кривых рук и дырявых скриптов это не защищает.
проверять надо переменные на соответствие ожидаемым, писать при регистер глобалс=офф и E_ALL
не исполнять код, пришедший от юзера.
и исполнять много других рекомендаций, описанных на этом сайте вразделе статьи.
 

t3[0one]

Новичок
всем спасибо .



-----

-~{}~ 14.04.05 19:11:

извеняюсь за поднятие вопроса ))
Код:
$a=htmlentities($a,ENT_QUOTES);
не будет ли это универсальнее ... быстрее.. и практичней ?

-~{}~ 14.04.05 19:13:

в какое время это делать с этим понятно....
 

t3[0one]

Новичок
одной функцией убиваются ковычки и всё остальное. Я просто подумал зачем делать две функции есле можно сделать одну. Проще будет систематизировать процесс мне кажется. или я сильно заблуждаюсь ?
 

Фанат

oncle terrible
Команда форума
ЧТО - всё остальное? Что конкретно?
Зачем убивать кавычки? Зачем убивать всё остальное?
 
Сверху