Как следует очищать пользовательские данные при интеграции с REST API для регистрации и аутентификации? - PullRequest
1 голос
/ 04 октября 2010

Я пишу модуль Drupal для интеграции с пользовательским REST API на основе Java для создания, аутентификации и управления учетными записями пользователей. Я использую drupal_query_string_encode для кодирования вызовов, которые я делаю в API.

Должен ли я также использовать что-то вроде check_plain (или что-то еще) для очистки имени пользователя, пароля и значений электронной почты перед вызовом API? Меня больше всего интересует правильная обработка пароля, поскольку было бы сложно что-то изменить, когда код заработает и пароли будут хэшироваться.

Ответы [ 2 ]

2 голосов
/ 05 октября 2010

Если вы публикуете то, что пользователь ввел во внешний API, вы не должны ничего дезинфицировать в Drupal, а вместо этого делать это в API, поскольку именно это будет хранить данные и т. Д.

Очистка имеет смысл только для предотвращения внедрения SQL или удаления отображаемого нежелательного HTML. Таким образом, вы должны использовать check_plain только для удаления HTML из текстового ввода, введенного пользователем перед отправкой, и db_query, чтобы сделать ваши SQL-запросы безопасными с помощью заполнителей.

1 голос
/ 05 октября 2010

Я бы согласился с googletorp в том, что в этом случае действительно требуется внешний API для очистки. Я хотел бы сделать некоторую базовую проверку работоспособности при вводе данных пользователем, чтобы убедиться, что все необходимые значения были отправлены. Как много вы проверяете на них, зависит от вас. Помните, что если вы строго проверяете входные данные перед отправкой их в API, а сторонний API переписывает форматы для ожидаемых входных данных, у вас могут возникнуть некоторые проблемы.

...