Вопрос о php, js и mysql

S
На сайте с 30.09.2016
Offline
469
#51
aravak:
или плагин для вордпресса поставить и все проблемы решатся )

По своему опыту судишь, фантазёр?

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
[Удален]
#52
aravak:
или плагин для вордпресса поставить и все проблемы решатся )

xD тучу плагинов WP и бубен в подарок)

S
На сайте с 30.09.2016
Offline
469
#53
Dreammaker:
было предложено технически правильное решение

Где? Кем? Когда? Единственно правильное решение было предложено мной в посте #7.

Dreammaker
На сайте с 20.04.2006
Offline
570
#54

Sitealert, мной и aravak. Использование pdo-функций перед записью в БД. Это технически корректное решение, которое работает вне зависимости от структуры данных и того, что нужно сохранить в БД.

ТС боится, что ему запишут вредоносный код в базу и он там исполнится. Это ключевое в его посте. Для того, чтобы не исполнялся вредоносный код, есть встроенные инструменты языка.

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

Ваш совет корректен, но если программист не будет знать о такой мелочи как экранирование - это никак не поможет ТСу.

A
На сайте с 11.05.2009
Offline
99
#55

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

Sly32
На сайте с 29.03.2012
Offline
302
#56

Слушайте, я совсем выпал из темы - а как PDO экранирует данные перед записью? Экранирует ли? можно ссылью ответить

A
На сайте с 11.05.2009
Offline
99
#57
Sly32:
Слушайте, я совсем выпал из темы - а как PDO экранирует данные перед записью? Экранирует ли? можно ссылью ответить

Ну если коротко, не заглядывая под капот, то вот https://www.php.net/manual/en/pdo.prepared-statements.php

Если очень хочется использовать sql прям строкой без bindParams то вроде quote была функция у pdo

Sly32
На сайте с 29.03.2012
Offline
302
#58

aravak, Спасибо. В любом случае и тут нужно не только взять кастрюлю чтобы стать поваром - нужно и уметь готовить. Вспомнил про бинд и prepare, в любом случае их нужно применять.

Dreammaker
На сайте с 20.04.2006
Offline
570
#59

Sly32, тут ещё более интересный момент есть - вот почитайте топик https://stackoverflow.com/questions/134099/are-pdo-prepared-statements-sufficient-to-prevent-sql-injection/12202218, который показывает, что нужно предусмотреть, чтобы не было проблем (это помимо использования bindParam).

В основном проблема может коснуться 2 вещей:

1) очень старые версии MySQL и если не задаётся кодировка запроса или же не используется параметр кодировки в подключении pdo;

2) Случай, похожий на тот который описывал SeVLad - записанный в базе текст запроса. Тут может быть нюанс, если потом этот поле в дальнейшем используется как часть другого запроса. В реальном мире, как написано, насколько известно автору комментария не используется, но теоретически возможно.

Вывод - опять же всё упирается в квалификацию программиста и его умением использовать инструменты. Но могут быть нюансы, в случае, если с кодом в дальнейшем будет работать программист с меньшим уровнем знаний.

В любом случае спасибо ТСу и всем кто принимает участие в этом топике. :)

S
На сайте с 30.09.2016
Offline
469
#60
aravak:
Dreammaker поражаюсь вашему терпению, так долго разжевывать очевидное явно слабо понимающему в теме любителю поучить других

Смешной ты, "знаток". Как говорят тут на форуме – иди, поучи жену щи варить. Блеснул "знаниями"? Ну и будь собой доволен. Только вот никому не советовал бы с тобой связываться по деловым вопросам.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий