|
|
|
Поиск по бд
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Проблема с организацией поиска, помогите разобраться. Код: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. Строка для поиска, например "searchStr "= Светодиоды для воздушных шаров, выдает следующие результаты: FM 34 Медвежонок в шарфике Зажим для шарика БЕЛЫЙ 100 шт AN 26" ФИГУРА/P35 HB Сюрприз с шарами AN 30" ФИГУРА/P30 Смешарики Крош Почему выводится "FM 34 Медвежонок в шарфике"? Как подправить чтоб выводилось четкое соответствие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 06:58 |
|
||
|
Поиск по бд
|
|||
|---|---|---|---|
|
#18+
WapxaZ, покажите текст запроса, а не гкод, его формирующий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 07:16 |
|
||
|
Поиск по бд
|
|||
|---|---|---|---|
|
#18+
tanglir, это то что осталось от предыдущих разработчиков, большей информацией не владею ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 08:12 |
|
||
|
Поиск по бд
|
|||
|---|---|---|---|
|
#18+
Включи логирование выполняемых запросов. Можно не для всего сервера БД, а в PHP например в методе find того класса, отрывок которого ты привёл в 1-м посте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 11:01 |
|
||
|
Поиск по бд
|
|||
|---|---|---|---|
|
#18+
WapxaZtanglir, это то что осталось от предыдущих разработчиков, большей информацией не владеюРазбирайте код, смотрите что реально выполняет self::find(). И либо настройте логирование запросов в MySQL, либо сделайте его самостоятельно где-то внутри self::find(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 11:09 |
|
||
|
Поиск по бд
|
|||
|---|---|---|---|
|
#18+
У меня тут немного офтоп, но выходящий из этого вопроса. Знающие, подскажите по примеру ТС в частности тут: Код: php 1. И из этого массива потом как я понимаю формируется итоговый SQL запрос. Так вот если рассмотреть этот конкретно кусок передаваемый на формирование из него запроса, то параметр $searchStr туда вставляется без какого-либо экранирования. Нет ли тут потенциала для SQL-инъекций? Как я понимаю SQL инъекции тут можно избежать в двух случаях: - или этот параметр передаётся уже экранированным в этот метод ( getProductsFromSearch() ) - или в методе find() этого класса производится синтаксический разбор параметра 'conditions' с вычленением из него параметров, которые должны быть экранированы, экранированием их и состряпывание обратно строки conditions. Второй вариант конечно совсем ад. Да и к тому же не помогающий при правильно оформленной инъекции. Сам с Zend'ом не работал, поэтому интересно у тех кто эту кухню знает спросить. ТС можешь проверить введя в качестве поискового параметра $searchStr= ' Запрос с кавычками " ' Должен выдать ошибку если инъекция возможна. Просто реально интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 11:29 |
|
||
|
Поиск по бд
|
|||
|---|---|---|---|
|
#18+
kormotВторой вариант конечно совсем ад.Поэтому его никто нигде не реализует (если ошибаюсь, давайте названия. мне самому интересно). Скорее всего первый, а там уже всё зависит от радиуса кривизны кода, формирующего эту строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 11:34 |
|
||
|
Поиск по бд
|
|||
|---|---|---|---|
|
#18+
tanglirПоэтому его никто нигде не реализует (если ошибаюсь, давайте названия. мне самому интересно) Такой я не встречал, а вот похожий но технологически конечно более правильный - во всяких компонентах PDO или Doctrine используются. Когда запрос похожим образом описывается, но только все аргументы там передаются в виде именно аргументов, которые уже самой библиотекой экранируются при составлений запроса. А тут какая-то мешанина из составления запроса, только путём склеивания готовых кусков SQL кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2016, 11:48 |
|
||
|
Поиск по бд
|
|||
|---|---|---|---|
|
#18+
Модератор: Оффтоп вынес в отдельную тему . Если напутал и потерял чей-то пост - пишите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2016, 10:10 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39198468&tid=1832017]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
170ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 501ms |

| 0 / 0 |
