POST запросы на сервер. Как изменить

AmdY

Пью пиво
Команда форума
Dovg
не передёргивай, здесь не профессиональные судьи, да и модерация делается между делом во время рабочих чаепитий, так что ошибки возможны и они не так уж критичны. ТС, всегда может пожаловаться, либо другой модератор поправит и откроет тему.
 

tarweb

Новичок
tarweb
Если ты хочешь проверять все массивы одной функцией - значит, ты что-то делаешь очень неправильно.
Скорее всего, ты делаешь свой сайт открытым для SQL инъекции.

Наоборот - таким образом я хочу своей функцией убивать на конечном этапе прихода информации на сервер, враждебные символы и операторы

PHP:
function badData ($str)
{
    $str = str_replace ( "UNION", " ", $str );
	$str = str_replace ( "union", " ", $str );
    $str = str_replace ( "CHAR", " ", $str );
	$str = str_replace ( "char", " ", $str );	
	$str = str_replace ( "OUTFILE", " ", $str );
	$str = str_replace ( "outfile", " ", $str );	
    $str = str_replace ( "FROM", " ", $str );
    $str = str_replace ( "from", " ", $str );	
	$str = str_replace ( "SELECT", " ", $str );
	$str = str_replace ( "select", " ", $str );
	
	// и т.д
	
    $del_symbols = array ( "#", "\$", "\t", "%", "^", "&", "+",
                           "\\", "|", "[", "]", "[","]", "{","}", 
						    "~", "“", "”", "*", "•"
                         );
    $str = str_replace($del_symbols, array(" "), $str);	
	
    return $str;	
}

if ($_POST)
{
$_POST = array_map("badData", $_POST);
}
elseif ($_GET)
{
$_GET = array_map("badData", $_GET);
}
else if ($_SESSION)
{
$_SESSION = array_map("badData", $_SESSION);
}

Может я не прав - поправте или дополните список для удаления в badData[/quote]
 

флоппик

promotor fidei
Команда форума
Партнер клуба
враждебные символы и операторы

Может я не прав - поправте или дополните список для удаления в badData
враждебные символы нападут на сервер и его покусают.

Ты не прав, и неправ глобально - твоя функция вообще не нужна.
 

Вурдалак

Продвинутый новичок
tarweb, вот представь, что данный форум написал какой-нибудь идиот, который тоже любит просто вырезать символы, которые ему не нравятся. Как бы ты тогда написал сейчас свой пост, который содержит всю эту кучу «опасных» символов?
 

Фанат

oncle terrible
Команда форума
tarweb
То что ты делаешь - в корне неправильно.
Эта "защита" тебя не защитит. Она только испортит данные.

Защита должна делаться в каждом месте своя. Для базы данных - при работе с базой данных.
Для браузера - при выводе в браузер.
И так далее.

А если делать в самом начале, то защита для БД испортит данные для браузера, и наоборот.

Вместо такой проверки, как у тебя, надо правильно работать с БД
постарайся прочесть вот эту длинную статью http://habrahabr.ru/post/148701/
там есть функция, которой ты можешь воспользоваться для выполнения запросов.
 

tarweb

Новичок
tarweb, вот представь, что данный форум написал какой-нибудь идиот, который тоже любит просто вырезать символы, которые ему не нравятся. Как бы ты тогда написал сейчас свой пост, который содержит всю эту кучу «опасных» символов?
Неудачное сравнение
Сайты по програмированию, математике и т.д. могут быть как исключение
 

AmdY

Пью пиво
Команда форума
как же прав был baev.
tarweb я уже вижу ряд непредусмотренных комбинаций, которые пропустит ваш фильтр.
но в то же время не могу понять, что плохого в слове SELECT, зачем его вырезать?

p.s. Как не удивительно, но на Хабре, как раз такие гореспециалисты понаписывали код, в итоге куча всего режется.
 

Фанат

oncle terrible
Команда форума
AmdY
Да с какой стати прав-то? ВСЕ учатся, у всех глупость в голове играет. Не надо записывать человека в идиоты и выгонять с сайта только потому что он ничего ещё не знает, а в голове каша.

tarweb
Твоя защита - дурацкая.
она не защищает по-настоящему от инъекций.
она портит данные и удобство пользования сайтом.
она бессмысленная, поскольку защита SQL запросов делается совсем по-другому.
 
Сверху