|
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
|
||||||
Белые списки в SQL01.10.2019, 23:52. Показов 4569. Ответов 18
Метки нет (Все метки)
Есть некий SQL-запрос:
0
|
||||||
| 01.10.2019, 23:52 | |
|
Ответы с готовыми решениями:
18
Связанные списки в sql Расставлены три белые и три черные шашки; нужно поменять местами белые и черные Delphi 7 + динамические списки + база MS SQL = большой объем используемой памяти |
|
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
|
|
| 03.10.2019, 00:50 [ТС] | |
|
аапчик теме!
0
|
|
|
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
|
|
| 31.03.2021, 14:52 [ТС] | |
|
аап!
Не по теме: искал другой вопрос по своим постам, и увидел, что на этот вопрос - ответ не получил.
0
|
|
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
| 31.03.2021, 16:08 | |
|
Белые списки обычно используют при динамической подстановке имен таблиц/столбцов. Здесь же все имена захардкожены, так что не очень понятно что ты хочешь получить.
0
|
|
|
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
|
||
| 03.04.2021, 00:26 [ТС] | ||
|
В целом мне интересно наглядная реализация преобразования произвольного (как пример я выбрал обычный INSERT PDO) SQL-кода в код, полностью защищённый от любых SQL-инъекций. В гугле конечно есть инфа, напр., вот тут 1-й и 3-й ответы довольно интересные: Кликните здесь для просмотра всего текста
https://coderoad.ru/60174/Как-... -SQL-в-PHP
Также весьма увекательна статейка на хабре по XSS: https://habr.com/ru/post/511318/ Ну или на стековерфлов был вопросик по preraped statment и их эффективности против SQL-инъекций - "Защищают ли подготовленные выражения/переменные полностью от SQL инъекций?" (но согласно правил форума ссылку не дам )
но все они как бы дают общее понимание, а хотелось бы чего-то более приземисто-практичного в стиле код "до/после", когда обычный PDO-код дополняется ещё какими-то фичами, рекомендациями делать какие-то доп. обработки над переменными/именами полей и операторами SQL и всё это вместе позволит усилить защиту передаваемых данных в бд. Ну а в случае с SELECT'ом ещё и пост-обработку полученных данных от запроса (т.к. как было классно описано фразой в одном каком-то посте на хабре (к сожалению не могу дать ссылку, но примерная суть фразы): "вы не должны доверять входящим данным, а также не должны доверять своей базе данных, т.к. и данные в ней теоретически могут быть скомпрометированы, если недоброжелатель каким-либо образом получит доступ к базе). Буду признателен за подробный ответ по самому вопросу, а также за возможные полезные ссылки с прикладными примерами решения проблем уязвимости кода.
0
|
||
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
||||||||||||||||||||||||
| 03.04.2021, 06:56 | ||||||||||||||||||||||||
https://www.php.net/manual/ru/... tities.php https://www.php.net/manual/ru/... lchars.php Было так в шаблоне:
1
|
||||||||||||||||||||||||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
||||||||||||||||
| 03.04.2021, 14:06 | ||||||||||||||||
|
Это заблуждение, что всякие подготовленные выражения, функции для экранирования и т.д нужны для "защиты", "защита" - это скорее побочный эффект. Их же основная задача - просто обеспечить нормальную работу, позволив или отделять данные от самого запроса, тем самым не надо думать как подставить данные и не сломать запрос, или же строку привести к такому виду, что с точки зрения бд это будет именно строка и т.д.
1
|
||||||||||||||||
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
|||
| 03.04.2021, 14:35 | |||
![]()
0
|
|||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
||
| 03.04.2021, 14:39 | ||
|
0
|
||
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
|
| 03.04.2021, 15:18 | |
|
Посмотрел на проблему с разных сторон, не только с технической: да, вы правы.
0
|
|
|
Надуваю лягушек
289 / 219 / 93
Регистрация: 01.05.2014
Сообщений: 742
|
|||||||||||
| 04.04.2021, 08:35 | |||||||||||
|
Типа такого может?
0
|
|||||||||||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
| 04.04.2021, 12:18 | |
|
0
|
|
|
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
|
|||||||||||
| 14.04.2021, 20:11 [ТС] | |||||||||||
htmlentities?Или проще пропустить пришедшую строку через регулярку вида:
А что делать со строкой почты? согласно RFC282 в ней может содержатся и амперсанд и скорбки, которые будут преобразовываться htmlspecialchars/htmlentities... Получается в базе они будут храниться в преобразованном виде, а если доставать из базы то декодировать через htmlspecialchars_decode() / html_entity_decode()?И ещё вопросик про почту но немного не по теме поста (просто связь с RFC282): Кликните здесь для просмотра всего текста
Я нашёл вот RFC 822 Email анализатор адресов в PHP - стоит ли его использовать для проверок строки адреса почты на правильность?
Кликните здесь для просмотра всего текста
nl2br?
0
|
|||||||||||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|||||||||
| 14.04.2021, 21:25 | |||||||||
0
|
|||||||||
|
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
|
||
| 14.04.2021, 21:46 [ТС] | ||
htmlentities, а потом её надо INSERT'ом запихнуть в базу. Если в строке будут символы, которые преобразует ф-ция, то и в базу попадут обработанные символы.
0
|
||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
||
| 14.04.2021, 22:13 | ||
|
0
|
||
|
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
|
|||||||
| 14.04.2021, 22:47 [ТС] | |||||||
|
Но вопрос, - полученные сервером строки из html, надо ли ещё как-то обрабатывать до их записи в базу? Или prepated statements абсолютно полностью защищает от любой пакости из-за своей специфики отделения SQL оператора от значения? И получается даже если нам юзер впихивает js-скрипт, мы его сохраняем как строку в базу, а при необходимости возвращая в html из базы мы очищаем потенциально опасные символы преобразуя в HTML-сущности?
0
|
|||||||
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|||
| 14.04.2021, 23:03 | |||
Сообщение было отмечено Wolver как решение
РешениеНу или наоборот - json_encode лишний, а htmlentities нужен
1
|
|||
|
28 / 24 / 10
Регистрация: 26.04.2015
Сообщений: 307
|
|
| 15.04.2021, 00:30 [ТС] | |
|
Понятненько)
Ну в целом, я получил исчерпывающие ответы и на основной вопрос и на ответвления от него по защите кода. Не знаю, какой из ответов считать лучшим, т.к. они информативно разношёрстны, но равноценны. Поэтому выберу последний как собирательный на мой последний коммент с кодом. Jewbacabra, Para bellum, благодарю за развёрнутые комменты!
0
|
|
| 15.04.2021, 00:30 | |
|
Помогаю со студенческими работами здесь
19
Как преобразовать вложенные списки из строки в обычные списки? Список женихов и невест. Обьеденить списки в списки пар. Дан вектор, элементы которого списки из целых чисел.Заменить на NILL списки с суммой равной 0 Списки, как склеить списки между собой? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|