Итак, у нас есть собственный регистратор (очень хотел использовать Log4Net, просто не подойдет для этого случая). Из конфигурационного файла вы можете настроить имя таблицы, в которую будете вставлять.
Я параметризирую оператор вставки, но имя настраиваемой таблицы будет использоваться в операторе вставки, и это потенциальный вектор для атаки. Вот пример оператора, который будет построен:
"insert into " + theTableName + " (static column list) values(parameterized list of values)"
Так что мои вставленные значения параметризованы и довольно безопасны, это theTableName, которое может содержать неприятности.
Мой вопрос: что я могу сделать, чтобы очистить имя таблицы? Я думаю, что природа кода, который злоумышленник может внедрить, должна немного отличаться от разновидности сада. - вместо галочки вы могли бы потенциально закрыть статистику "table name () values (); сделать что-то плохое -
(или что-то подобное, я полагаю). С этой целью я думал о проверке «;» и «-».
Может кто-нибудь предложить лучший способ дезинфицировать это? (это будет использоваться с Oracle и SQL-сервером)