Здравствуйте, проблема у меня! Запустил свой первый проект, сделал защиту от sql инъекций, но есть другая проблема. Один очень умный пользователь внедрил js код в базу и он выполняется. Как можно этого избежать? Работаю исключительно через pdo и prepare запросы.
Пример:
Это называется XSS и никакого отношения к PDO и вообще к БД не имеет. Эта атака хорошо известна и способы борьбы с ней описаны во множестве статей, выбирайте любую.
Собственно, в блоке "Продаваемый товар" у вас, очевидно, уже всё сделано правильно, раз там скрипт выводится текстом, а не исполняется.
Эскейпить лучше при выводе, а не при сохранении. Так, во-первых, всегда будет доступ к оригинальным данным, а во-вторых, не надо надеяться, что кто-то где-то когда-то не забыл заэкранировать при сохранении (собственно, у автора уже есть мусор в БД).