Показать сообщение отдельно
  #4 (permalink)  
Старый 21.07.2015, 00:47
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

После FROM идет имя таблицы, и получается, что это имя вы получаете извне, более того как значение поля формы - $('#glossary').val(). Это означает, что вы открываете двери для инъекции, когда можно подбирать иные имена таблиц базы, а угадав (благо на несуществующие ваш скрипт любезно выдаст ошибку), творить с вашей базой все что угодно.

Все данные пришедшие извне нельзя подставлять непосредственно в запрос как его параметры, их необходимо экранировать или приводить к соответствующему типу. Значения полученные извне и в дальнейшем используемые в запросе как его параметры также надо экранировать.

Если есть веские основания для указания имени таблицы в форме, то это должно быть только его часть, без префикса, и только на сервере формировать полное имя. А если еще это имя задается как вводимое в форму значение, то перед запросом не мешало бы удостовериться в наличие такой таблицы в базе.

Что касается сортировки, то здесь вообще не понятно о чем речь. Если это задание пользовательской сортировки записей в таблице, то не видно по коду операций для таких случаев ни на клиенте, ни на сервере.
Ответить с цитированием