Какие проверки следует выполнять для пользовательских данных из форм? - PullRequest
2 голосов
/ 15 марта 2011

Я пишу приложение для движка приложений, в котором есть несколько полей ввода.

Есть ли какие-либо проблемы, которые мне нужно принять во внимание, например, this ?

Ответы [ 2 ]

1 голос
/ 15 марта 2011

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

Что касается строк, вам не нужно беспокоиться о внедрении SQL (или GQL в данном случае), если вы не строите запросы вручную. Вместо этого используйте метод GqlQuery.bind() или методы, предоставленные Query для передачи значений (например, Query.filter()). Затем эти классы позаботятся о формулировании запроса, поэтому вам не нужно беспокоиться о синтаксисе (или внедрении).

Примеры (адаптировано из документов, связанных с ранее):

# this basic string query is safe
query = Song.all()
query.filter('title =', self.request.get('title'))

# a GqlQuery version of the previous example
query = GqlQuery("SELECT x FROM Song WHERE title = :1",self.request.get('title'))

# sanitize/validate when you have requirements: e.g., year must be a number
query = Song.all()
try:
    year = int(self.request.get('year'))  # make sure we got a number
except:
    show error msg
query.filter('year =', year)
0 голосов
/ 16 марта 2011

Существует множество библиотек форм, которые выполняют большую часть тяжелой работы за вас - вам следует использовать одну из них. Библиотека новых форм Django включена в App Engine.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...