|
|
|
| опастность внедрения скл иньъекции если если идет запрос select * from 'tab' WHERE ... так как после where идут внешнии параметры - данные. etc
в этом случае можно использовать либо очистку массива get либо mysql_escape_strings для переменных в where
в других случаях типа 'select * from $tab' можно не беспокоится за get переменные
тпкже если используется структура с switch ... case
например:
$t=$_get['t'];
switch ($t)
{
case 0:
select * from 'tab'
break;
}
в даном примере ничего удалчять из get ненадо.
мысль правельна? | |
|
|
|
|
|
|
|
для: moonfox
(02.04.2007 в 22:28)
| | >в других случаях типа 'select * from $tab' можно не беспокоится за get переменные
Беспокоится следует всегда, когда переменная передаётся через машину клиента - ничто не мешает добавить WHERE-условие через $tab, если $tab проходит через клиентскую машину. | |
|
|
|
|
|
|
|
для: cheops
(03.04.2007 в 02:15)
| | а если $tab предопределенно?
скажем $_get $var=1
if $var=1
$tab='table'
select * from $tab
???
хтя тут наверно нужно только через define определять переменую с именем таблицы | |
|
|
|
|
|
|
|
для: moonfox
(03.04.2007 в 19:15)
| | Нет по такой схеме (если после if используются фигурные скобки) никаких взломом провести невозможно. | |
|
|
|
|
|
|
|
для: cheops
(04.04.2007 в 01:49)
| | а в случае с switch, case? | |
|
|
|
|
|
|
|
для: moonfox
(04.04.2007 в 18:38)
| | а в случае с switch, case?
Смотря какой код.
В том примере, что Вы привели в первом посте, произвести SQL-иньекцию нельзя. | |
|
|
|
|
|
|
|
для: Unkind
(04.04.2007 в 19:31)
| | а если через переменую указывать таблицу .. так для функции проще
$t=$_get['t'];
switch ($t)
{
case 0:
$tab='table';
select * from $tab; // этот запрс в функции стоит я просто при значениях $t указываю из какой таблицы фукнции читать данные
break;
} | |
|
|
|