Привет, есть возможность ускорить запрос, тем, что не формировать название поля в обработчике т.е. отправить название поля GET пвраметром (или вообще название таблицы,
![smile.gif](http://phpforum.su/html/emoticons/smile.gif)
), вот не могу предумать, как это может повредить?
В смысле если все обработано (int) и real_escape + отключен показ ошибок (когда злодей отправит несуществующее имя таблицы или поля), как может еще навредить?
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Valick
24.02.2014 - 09:01
ABC, он легко подберет существующее.
да и инъекция в имя таблицы на ура пройдет
_____________
Стимулятор ~yoomoney - 41001303250491
Valickнет ну ..+ запрет на запрещенные символы конечно, просто забыл дописать
$a=(int)$_GET['a'];
$name=$_GET['name'];
$tab=$_GET['tab'];
if(preg_match("#[a-z]{1,10}$#ui",$tab))
{
$sql=mysql::query("SELECT `field` FROM `tab_$tab` WHERE `id`='$a' AND `name`='".mysql::real_escape_string($name)."'");
}
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Valick
24.02.2014 - 10:38
ABC, мне просто интересно каким таким образом повышается скорость?
и еще интереснее что с результирующими полями выборки и их обработкой?
_____________
Стимулятор ~yoomoney - 41001303250491
Valick
Цитата |
что с результирующими полями выборки и их обработкой? |
ну не совсем понял, есть строки -> обрабатываем, как обычно.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
sergeiss
24.02.2014 - 11:31
И я тоже не понял, каким образом ускорится обработка, если ты передашь сразу нужное имя столбца или таблицы?
В чем принципиальная разница в обработке между "правильным" именем таблицы
$tab=$_GET['tab'];
и "неправильным"
$real_tab=$_GET['tab'];
Где ты тут выиграешь хотя бы одну наносекунду?
_____________
*
Хэлп по PHP*
Описалово по JavaScript *
Хэлп и СУБД для PostgreSQL*
Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги. *
"накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)
Да изначально неправильно спросил...
Цитата |
Где ты тут выиграешь хотя бы одну наносекунду? |
Я имел ввиду другое, имя таблицы я могу получить, напримир из списка таблиц другой таблицы. А могу стразу отправить запросом. Вот и пишу, что будет если вместо правильного запроса придет имя несуществующей таблицы или поля. То, что все будет зачищено от инъекций, как бы само собой. Вопрос только в этом:
Цитата |
+ отключен показ ошибок (когда злодей отправит несуществующее имя таблицы или поля), как может еще навредить |
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Invis1ble
24.02.2014 - 12:12
ну будут у тебя логи засираться + лишняя нагрузка на http-сервер и СУБД в виде заведомо ошибочных запросов
_____________
Профессиональная разработка на заказЯ на GitHub |
второй профиль
Цитата |
ну будут у тебя логи засираться + лишняя нагрузка на http-сервер и СУБД в виде заведомо ошибочных запросов |
Да...
Всем огромное спасибо. Глупость иногда тоже бывает полезной.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
exotica
11.03.2014 - 08:17
А разве имя таблицы вообще возможно подставить как переменную в запрос??
$query ="SELECT * FROM $table WHERE...";
вроде нет же?
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
Invis1ble
11.03.2014 - 14:18
exotica
14.03.2014 - 11:25
Цитата |
чё это? это обычная строка |
тогда назревает вопрос.
Что нельзя поместить в запрос в виде переменной или константы ?потому что точно помню что я на этом окарался
_____________
[FAQ]Регистрации пользователей, сохранение в БД---------------------------------------------------------------------------
Выходя из ванной, вышел из нее два раза
andrey888
19.03.2014 - 20:58
Цитата |
тогда назревает вопрос.
Что нельзя поместить в запрос в виде переменной или константы ?
потому что точно помню что я на этом окарался
|
Рассуждая логически
1) То чего не существует в Бд (поле, таблица)
2) Boolean
3) Пустую строку или NULL
Остальное идет как обычная строка...
_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )