

If you are starting from this chapter, follow these steps to set up a simple web app built with Express and Pug, which is the basis for this chapter's security exercises: Look for the 🛠️️ emoji if you'd like to skim through the content while focusing on the build steps. The client is server-side rendered using Pug templates styled with CSS. You'll use Passport.js with Auth0 to manage user authentication and protect routes of a client that consumes an API. In both cases the default behavior is to escape the line.In this tutorial, you'll learn how to secure Node.js web application built with the Express framework. In the second line the paragraph content is a text string concatenated with the title variable. So for example, in the first line below, the content of the h1 tag will be variable title (either defined in the file or passed into the template from Express). If a tag is followed by the equals sign, the following text is treated as a JavaScript expression. characters like " >" are converted to their HTML code equivalents like " >") to prevent JavaScript injection or cross-site scripting attacks. The values of all attributes are escaped (e.g. meta(name='viewport' content='width=device-width initial-scale=1').script(type='text/javascript'), link(rel='stylesheet', href='/stylesheets/style.css').Inside the parentheses, the attributes are defined in comma- or whitespace- separated lists of the pairs of attribute names and attribute values, for example: H2 Generate a list ul each val in li = valĮlement attributes are defined in parentheses after their associated element. Strong focus on performance and powerful features. Pug is a terse and simple template language with a else p A variable named "title" does not exist. col if title p A variable named "title" exists. p = 'Evaluated and escaped expression:' + title // You can add single line JavaScript comments and they are generated to HTML comments //- Introducing a single line JavaScript comment with "//-" ensures the comment isn't rendered to HTML p A line with a link a ( href = '/catalog/authors' ) Some link text | and some extra text. body h1 = title p This is a line with # and # markup. Doctype html html ( lang = "en" ) head title = title script ( type = 'text/javascript' ).
