sqlite3_bind_text достаточный для предотвращения Внедрения SQL на iPhone

Это - или на самом деле аналогичное стремление к типу натуральных чисел (включая 0) - на самом деле является частой жалобой на иерархию числовых классов Хаскелла, которая делает невозможным действительно чистое решение этой проблемы.

Почему? Посмотрите на определение Num:

class (Eq a, Show a) => Num a where
    (+) :: a -> a -> a
    (*) :: a -> a -> a
    (-) :: a -> a -> a
    negate :: a -> a
    abs :: a -> a
    signum :: a -> a
    fromInteger :: Integer -> a

Если вы не вернетесь к использованию error (что является плохой практикой), вы не сможете предоставить определения для (-), negate и fromInteger.

13
задан bradhouse 23 May 2009 в 09:32
поделиться

1 ответ

Да, если вы передаете только данные, предоставленные пользователем, в функции sqlite3_bind_ *, тогда вы защищены от атак SQL-инъекций (эти атаки предполагают, что вы динамически создаете строку запроса и не цитируете / правильно экранировать введенные пользователем данные).

13
ответ дан 2 December 2019 в 00:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: