15.10. Unieszkodliwianie kodu HTML i JavaScript przed wyświetlaniem

Problem

Chcemy wyświetlić dane, które mogą zawierać kod HTML lub JavaScript, ale nie chcemy, aby przeglądarka zinterpretowała go jako kod. Jest to szczególnie istotne w przypadku wyświetlania danych wprowadzanych przez użytkowników.

Rozwiązanie

Aby unieszkodliwić encje HTML zapisane w ciągu znaków, należy przekazać ciąg do funkcji pomocniczej h(). A zatem, zamiast zapisu:

<%= @data %>

należy zapisać:

<%=h @data %>

Funkcja pomocnicza h() przekształca następujące znaki na ich odpowiedniki w postaci encji HTML: ampersand (&), cudzysłów (), lewy nawias trójkątny (<) i prawy nawias trójkątny (>).

Dyskusja

Definicji funkcji pomocniczej h() na próżno by szukać w kodzie ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.