2014-01-26 4 views
0

У меня есть следующий вид:Validate поле на нескольких языках

<%= form_for :user, url: "#" do |f| %> 
    <%= f.text_field :name %> 
    <%= f.submit "send" %> 
<% end %> 

и мне нужно, чтобы проверить имя поля, но страница работает на нескольких языках: китайский, португальский, испанский и так далее. , тогда я не могу ограничить поле только буквенно-цифровыми значениями.

Как я могу проверить только опасные специальные символы?

ответ

0

Позвольте мне попытаться разбить его на несколько проблем

1) как можно проверить только опасные специальные символы?

Это зависит от того, что вы делаете с датой ввода. Вы строите с ним SQL-запрос, вы видите на своей веб-странице, отправляете ли вы его на стороннее веб-приложение, запускаете ли вы на нем какой-либо инструмент командной строки и передаете ему данные в качестве аргумента.

Все эти вещи могут иметь другое понятие «опасных специальных символов» и обрабатывать их.

Итак, нет идеального ответа.

Возможно, вам необходимо указать, каким именно вы будете использовать эти данные.

2) Где я могу получить дополнительную информацию обо всех типах таких проблем?

Я действительно надеюсь, что вы задаете этот вопрос, потому что если вы защитите свое приложение от SQL-инъекции, но оставите широко открытыми некоторые другие обычные дыры в безопасности, это не принесет вам слишком многого.

Существует очень хорошая безопасность хороша для рельсов приложения, которое необходимо прочитать для безопасности сознательного разработчика: http://guides.rubyonrails.org/security.html

3) ок. Как обрабатывать многоязычную страницу

Кодировка по умолчанию - UTF-8 для Ruby 2.0 и выше (что, скорее всего, вы используете). Это означает, что вам не нужно делать ничего особенного для обработки других персонажей (языков, которые их используют). Однако вы правы, вам нужно будет добавить какое-то ускорение для специальных символов (что зависит от вопроса №1).

Смежные вопросы