Показать сообщение отдельно

  #7  
Старый 25.10.2011, 14:21
Expl0ited
Познавший АНТИЧАТ
Регистрация: 16.07.2010
Сообщений: 1,022
Провел на форуме:
262707

Репутация: 935


По умолчанию

Цитата:
Сообщение от Mail2k  
Если не трудно,можно пример,как это выглядеть должно?
PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][/COLOR
В колонке `pass` - phpinfo(); в колонке `user` - assert, вот структура базы, для теста:

PHP код:
[COLOR="#000000"][COLOR="#0000BB"]CREATE TABLE[/COLOR][COLOR="#007700"]IF[/COLOR][COLOR="#0000BB"]NOT EXISTS[/COLOR][COLOR="#007700"]`[/COLOR][COLOR="#DD0000"]users[/COLOR][COLOR="#007700"]` (

`[/COLOR][COLOR="#DD0000"]id[/COLOR][COLOR="#007700"]`[/COLOR][COLOR="#0000BB"]int[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]10[/COLOR][COLOR="#007700"])[/COLOR][COLOR="#0000BB"]NOT NULL AUTO_INCREMENT[/COLOR][COLOR="#007700"],

`[/COLOR][COLOR="#DD0000"]user[/COLOR][COLOR="#007700"]`[/COLOR][COLOR="#0000BB"]varchar[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]255[/COLOR][COLOR="#007700"])[/COLOR][COLOR="#0000BB"]NOT NULL[/COLOR][COLOR="#007700"],

`[/COLOR][COLOR="#DD0000"]pass[/COLOR][COLOR="#007700"]`[/COLOR][COLOR="#0000BB"]varchar[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]255[/COLOR][COLOR="#007700"])[/COLOR][COLOR="#0000BB"]NOT NULL[/COLOR][COLOR="#007700"],

[/
COLOR][COLOR="#0000BB"]PRIMARY KEY[/COLOR][COLOR="#007700"](`[/COLOR][COLOR="#DD0000"]id[/COLOR][COLOR="#007700"]`)

)[/
COLOR][COLOR="#0000BB"]ENGINE[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]MyISAM[/COLOR][COLOR="#007700"]DEFAULT[/COLOR][COLOR="#0000BB"]CHARSET[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]utf8 AUTO_INCREMENT[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]2[/COLOR][COLOR="#007700"];

[/
COLOR][COLOR="#0000BB"]INSERT INTO[/COLOR][COLOR="#007700"]`[/COLOR][COLOR="#DD0000"]users[/COLOR][COLOR="#007700"]` (`[/COLOR][COLOR="#DD0000"]id[/COLOR][COLOR="#007700"]`, `[/COLOR][COLOR="#DD0000"]user[/COLOR][COLOR="#007700"]`, `[/COLOR][COLOR="#DD0000"]pass[/COLOR][COLOR="#007700"]`)[/COLOR][COLOR="#0000BB"]VALUES

[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'assert'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'phpinfo();'[/COLOR][COLOR="#007700"]);

[/
COLOR][/COLOR
Т.е. логика у скрипта такая, если в _REQUEST['userlogin'] передаются данные, то скрипт обращается к базе и запрашивает из таблицы users две колонки user и pass у записи где id равен 1, и эти данные попадают в функцию array_filter которая возвращает данные отфильтрованные в соответствии с результатом функции обратного вызова, в качестве такой функции мы используем assert, которая может обработать строку как PHP код, в качестве этой строки у нас phpinfo(); что собственно и работает нам на руку.
 
Ответить с цитированием