| |
|
|
| | насколько целесообразно передавать имя таблицы в БД через get
index.php?id=1&pos=about | |
| |
|
|
| |
|
|
| |
для: mindless
(15.12.2006 в 19:04)
| | | Смотря для каких целей. | |
| |
|
|
| |
|
|
| |
для: Unkind
(15.12.2006 в 19:05)
| | | мне так проще указывать из какой таблицы делать выборку
напрример index.php?id=1&pos=about выбьрать то что имеет id 1 из таблицы about | |
| |
|
|
| |
|
|
| |
для: mindless
(15.12.2006 в 19:11)
| | | аааааааааа? | |
| |
|
|
| |
|
|
| |
для: mindless
(15.12.2006 в 23:07)
| | | Если так хочеться можно делать..блин хотя я неуверен что это безопастно..тогда уж точно придётся жестко фильтровать переменные которые поступают из get. | |
| |
|
|
| |
|
|
| |
для: mindless
(15.12.2006 в 19:04)
| | | Очень и ОЧЕНЬ не безопасно... передавайте лучше по СЕССИЯМ, ну или сделайте хорошую проверку, как ыбло написано постом выше :) | |
| |
|
|
| |
|
|
| |
для: mindless
(15.12.2006 в 19:04)
| | | Передавать можно, только нужно обязательно проверять, чтобы не всунули вместо GET-параметра, SQL-инъекцию. | |
| |
|
|
| |
|
|
| |
для: cheops
(16.12.2006 в 02:14)
| | | а опасность таиться при передачи переменных типа string или цифр тоже? | |
| |
|
|
| |
|
|
| |
для: mindless
(16.12.2006 в 02:58)
| | | Ага. И цифр тоже. | |
| |
|
|
| |
|
|
| |
для: mindless
(16.12.2006 в 02:58)
| | | Если таблиц не так много, то можно им присвоить id, а уж дальше в самом скрипте на основании полученного id использовать ту, или иную таблицу. | |
| |
|
|
| |
|
|
| |
для: Somebody
(16.12.2006 в 03:23)
| | | я так и сделал..
но все мне теперь интересно больше узнать о возможных проблемах | |
| |
|
|
| |
|
|
| |
для: mindless
(16.12.2006 в 03:27)
| | | нужно очистить переданную строку от всего, кроме цифр, и проблем не будет | |
| |
|
|
| |
|
|
| |
для: mindless
(16.12.2006 в 03:27)
| | | Опасность заключается в том, что вместо имени таблицы можно передать фрагмент SQL-кода, который из будет вставлен в ваш SQL-запрос и посредством конструкции UNION превратит его в два запроса, один из которых будет осуществлять нужные злоумышленику действия, например, выводить пароли (если они имеются в одной из таблиц). | |
| |
|
|
| |
|
|
| |
для: cheops
(16.12.2006 в 13:26)
| | | на сервере где я хостю сайт сто мускл 4.1.21 - у меня в запросе select по id нет проверок на стмволы ... но сколька не пытался пихать всякую лебуду в адресной строке после id - все все твремя получал ошибку .... "не правельный параметр строки в mysql_fetch_arrow"- хтя как я понял - ошибка не всегда прихнать несостоятельность инъекции.. тогда скажете - вот допустим нащ запрос реально осуществился - мы подствили свой запрос и что то выбрали- как эти данные теперь отобразить? | |
| |
|
|
| |
|
|
| |
для: mindless
(16.12.2006 в 19:05)
| | | Не всякая лабуда подходит на роль инъекции :))), чтобы составить инъекцию зачастую нужно знать структуру таблицы... в приципе этот вопрос подробно рассматривается в книге "Головоломки на PHP для хакеров", а также разбирается в ответах к задаче http://www.softtime.ru/info/task.php?id_article=81. Существую методы исследования, позволяющие восстановить структуру таблицы по SQL-инъекции, в общем если долго возиться можно осуществить взлом, но чтобы продемонстрировать его, обычным разработчикам нужны исходные коды и структура таблицы, так как у них зачастую нет времени ломать код (который возможно ещё и не сломаешь в результате). Посмотрите задачу - там демонстрируется одна из SQL-инъекций - если будет что-то не понятно - справшивайте - будем разбираться дальше. | |
| |
|
|