Rails поможет начать - PullRequest
       1

Rails поможет начать

1 голос
/ 23 июля 2011

Я следовал руководству по началу работы с Rails 3, и в нем было примечание, которое я не понимал:

В предыдущих версиях Rails вам приходилось использовать <%=h post.name %> так что любой HTML будет экранирован перед вставкой на страницу.В Rails 3.0 теперь это по умолчанию.Чтобы получить неэкранированный HTML-код, вы теперь используете <%= raw post.name %>.

. Я не совсем понимаю, что это значит, экранированный HTML или неэкранированный HTML.Может кто-нибудь объяснить мне это?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 23 июля 2011

Если post.name = <b>Bob</b>

, то в Escape-коде HTML будет отображаться

<b>Bob</b>

, в то время как в коде Unescaped будет показан необработанный вывод

Bob

1 голос
/ 23 июля 2011

Экранирование HTML просто означает его кодирование, чтобы оно выглядело как HTML, поэтому вы видите <b>foo</b> вместо того, чтобы фактически обрабатываться как HTML на вашей странице, например foo .

.Это происходит путем преобразования специальных символов в безопасные версии, называемые сущностями HTML.Например, сущность HTML для < равна &gt;.

0 голосов
/ 23 июля 2011

Экранирование Html важно для защиты приложения rails от межсайтового скриптинга.Чтобы лучше понять межсайтовый скриптинг, просмотрите этот начальный скринкаст.

http://railscasts.com/episodes/27-cross-site-scripting

Для получения дополнительной информации о том, как это обрабатывается в Rails 3

http://railscasts.com/episodes/204-xss-protection-in-rails-3

Я бы предложил подробно изучить это руководство по защите Rails Applications, в котором рассказывается о многих вещах.

http://guides.rubyonrails.org/v2.3.8/security.html

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