Kohana SQL Подготвена декларация за безопасност

В документацията на подготвеното изявление на Kohana се посочва

Въпреки че всички параметри са екранирани, за да се предотврати инжектирането на SQL, все пак е добра идея да потвърдите/дезинфекцирате входа си.

От това, което прочетох в подготвените изрази, останах с впечатлението, че обвързващите параметри предотвратяват SQL инжектирането. Ако това не е така, какъв метод за саниране/бягство трябва да използвам, преди да обвържа променливите?


person flurry    schedule 14.10.2011    source източник


Отговори (2)


Мисля, че когато казват "все още е добра идея да се валидира/дезинфекцира", те имат предвид да използват валиден клас или/и клас за валидиране... За да сте сигурни, че получавате правилните данни, вмъкнати във вашата база данни.

Повече информация за валидирането в Kohana: http://kohanaframework.org/3.2/guide/kohana/security/validation

АКТУАЛИЗАЦИЯ:

Трябва също да разгледате XSS: http://kohanaframework.org/3.2/guide/kohana/security/xss

person jnbdz    schedule 14.10.2011
comment
съгласие, например какво се случва, ако вмъкнете цяло число и вместо това получите текстов низ. вероятно ще завършите с 0 в базата данни вместо това, което сте очаквали. - person bumperbox; 14.10.2011
comment
Така че само за да бъде ясно, причината, поради която се казва, че това не е поради опасения за сигурността, а просто за да се уверите, че типовете данни, които очаквате, влизат в заявката? - person flurry; 14.10.2011
comment
Всъщност може да се превърне в проблем със сигурността, ако към вашата база данни се добавят грешни данни (напр. Човек може да вмъкне скрипт в базата данни, който може да се изпълни някъде и в някакъв момент във вашето приложение). Може също да причини грешки. - person jnbdz; 14.10.2011

Kohana предоставя db абстракция за различни типове бази данни. Не всички конкретни бази данни може да са подготвили отчети, така че ще бъдат симулирани. Някои собствени функции за екраниране за конкретни бази данни може дори да бъдат повредени.

Както никога не знаете, винаги е добре да имате не само едно ниво на сигурност.

Друго ниво е, че вашият скрипт действително получава данни, които имат смисъл. напр. низ от първо име, който е голям например 8 мегабайта. Няма да има смисъл, независимо какво прави базата данни с нея.

person hakre    schedule 14.10.2011