Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

▪ ▪ ▪ ▪ ▪ ▪

Slide 3

Slide 3 text

▪ ▪ ▪ ▪

Slide 4

Slide 4 text

▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪

Slide 8

Slide 8 text

▪ ▪ ▪

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

▪ ▪ ▪ ▪ ▪ ▪

Slide 13

Slide 13 text

▪ ▪ ▪ ▪ ▪ ▪ ▪ ▪

Slide 14

Slide 14 text

String query = "select * from customers where group = "; query += request.getParameter("group"); rowMapper = new RowMapper() { @Override public Customer mapRow(ResultSet rs, int rowNum) throws SQLException { return new Customer(rs.getLong("id"), rs.getString("first_name"), rs.getString("group")); } }; jdbcTemplate.query(query, new Object[] {}, rowMapper); http://host.tld/customers?group=12

Slide 15

Slide 15 text

String query = "select * from customers where group = " query += request.getParameter("group"); jdbcTemplate.query(query, new Object[] {}, rowMapper); http://host.tld/query?group=1 OR 1=1 SELECT * FROM customers where group=1 OR 1=1

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

▪ ▪

Slide 19

Slide 19 text

▪ ▪ … ▪ ▪ … ▪ ▪ ▪ ▪

Slide 20

Slide 20 text

▪ ▪ ▪

Slide 21

Slide 21 text

Comentarios

Hola!

alert("Controlado por el intruso")

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

/hello?name=alert(‘xss’)

Hi alert(‘xss’)

@RequestMapping("/hello") @ResponseBody protected String handleHello(HttpServletRequest request){ String name = request.getParameter("name"); return String.format(“

Hi %s

", name); }

Slide 24

Slide 24 text

/hello?name=alert(‘xss’)

Hi <script>alert("xss")</script>

Hi alert(‘xss’) import org.springframework.web.util.HtmlUtils; @RequestMapping("/hello") @ResponseBody protected String handleHello(HttpServletRequest request){ String name = request.getParameter("name"); return String.format("

Hi %s

", HtmlUtils.htmlEscape(name)); }

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

▪ ▪ ▪

Slide 27

Slide 27 text

▪ ▪

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

▪ ●

Slide 31

Slide 31 text

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

▪ ▪

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

▪ ▪

Slide 36

Slide 36 text

▪ …

Slide 37

Slide 37 text

▪ ▪ if not has_authorization(user, action, object): raise AuthorizationException(user, action, object) action(user, object)

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

▪ ▪ ▪ ▪

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content