Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Веб-разработка и фреймворки > Библиотеки очистки недоверенных данных для Python


Автор: Nilm 20.10.2007, 17:10
Все доброго времени суток!
Хотел поинтересоваться, существуют ли библиотеки для очистки недоверенных данных для Python?
При поиске в Yandex & Google неоднократно натыкался на аналогичные либы для Perl и PHP, но не для Python. Может кто-нибудь что-нибудь посоветовать?

З.Ы. Под недоверенными данными я подразумеваю пользовательский ввод. Соответственно перед выводом его на HTML-страничку, использовании в SQL-запросе и т.п. было бы неплохо экранировать потенциально опасные символы и т.п. Плиз, ручную обработку строк с помощью регэкспов не предлагайте smile

Автор: setq 20.10.2007, 18:09
Цитата(Nilm @  20.10.2007,  17:10 Найти цитируемый пост)
перед выводом его на HTML-страничку


cgi.escape(s)


Цитата(Nilm @  20.10.2007,  17:10 Найти цитируемый пост)
использовании в SQL-запросе


Вам нужно выяснить поддерживает ли ваша библиотека синтаксис со "знаками вопроса":
Код

>>> toDo = 'UPDATE foo SET name = ? WHERE U_id = 10'
>>> cur.execute(toDo, tainted_string)

Автор: Nilm 21.10.2007, 11:11
cgi.escape(), спасибо, я знаю. Однако одного его, как не жаль, не достаточно для полной обработки.

Для работы с HTML и CSS я нашел следующие Python библиотеки: http://code.google.com/p/userhtml/, http://code.google.com/p/html5lib/ и http://genshi.edgewall.org/
Специально даю ссылки, если кому интересно. Первые две - относительно новые разработки от Code Google, а третья походу разработка от создателей небезизвестного Trac.

Но я так ничего не нашел по поводу SQL :(
Плиз, подсобите, кто знает. Либо расскажите, как это делаете вы.

"Вам нужно выяснить поддерживает ли ваша библиотека синтаксис со "знаками вопроса":"
Проект, над которым я работаю должен работать с любыми БД, потому не хотелось бы полагаться на реализацию :(

Автор: pythonwin 21.10.2007, 14:10
Цитата(Nilm @  21.10.2007,  14:11 Найти цитируемый пост)
Проект, над которым я работаю должен работать с любыми БД, потому не хотелось бы полагаться на реализацию :( 

тогда посмотри джанго, ТГ или pylons

Автор: nerezus 22.3.2008, 11:24
Таких библиотек не бывает. В том числе и для PHP, к примеру.

Ну если конечно не считать порчу данных заслешеванием и т.д., но это всякие кулхацкеры их пишут.

Единственное решение - правильно делать запросы, а база данных - на то и база, а не хрень какая-то, чтобы принять любой запрос.

Автор: dvska 13.4.2008, 11:54
Цитата(Nilm @  21.10.2007,  11:11 Найти цитируемый пост)
Первые две - относительно новые разработки от Code Google

 smile 
Цитата(Nilm @  21.10.2007,  11:11 Найти цитируемый пост)
Проект, над которым я работаю должен работать с любыми БД, потому не хотелось бы полагаться на реализацию :(
http://www.sqlalchemy.org/

Автор: pythonwin 14.4.2008, 14:13
Nilm, ты сам определись что тебе нужно, а спросил что-то непонятное - объясни внятно!
Если тебе нужна валидация данных в форме, то тебе нужно FormEncode.
Если генерация html-страничек, то посмотри kid, genshi, cheetah, mako и т.д.
Если тебе нужно работать с БД как с объектами питона, то посмотри sqlobject или sqlalchemy
И если тебе нужно всё это вместе, то посмотри Django, Pylons или Turbogears 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)