getting information through html forms

42
webDeV@rgu getting information from users html forms quick tip… THE “SECURITY HACK” AT THE END OF THIS PRESENTATION IS SOMETHING THAT EVERYONE SHOULD KNOW!

Upload: mike-crabb

Post on 16-Apr-2017

39.364 views

Category:

Design


1 download

TRANSCRIPT

Page 1: Getting Information through HTML Forms

webDeV@rgugetting information from users

html forms

quick tip…THE “SECURITY HACK” AT THE END OF THIS PRESENTATION IS SOMETHING THAT EVERYONE SHOULD KNOW!

Page 2: Getting Information through HTML Forms

• HTML Forms • Form Presentation • Form Elements

• Input Types • Input Attributes

• Form Security

Overview

Page 3: Getting Information through HTML Forms

HTML Forms

Page 4: Getting Information through HTML Forms

• Capturing user input • registering user information • entering username and password for login • posting status updates to social networks • submitting a search query • taking a questionnaire

• Transmitting user input elsewhere • send to client side JavaScript for validation • send to server side process (PHP, Java,

JavaScript)

Purpose of html Forms

Page 5: Getting Information through HTML Forms

Form Presentation

Page 6: Getting Information through HTML Forms

a simple html form

Page 7: Getting Information through HTML Forms

• The form tag contains all the input elements • <form> … </form>

• Input elements can be of <input type=“” /> • Text/password/file or textarea • Radio button or Checkbox • Select boxes

• All input elements should be given a form label • Improves accessibility if using a screen reader • <label> … </label>

• Fieldsets can be used to graphically group input elements together

• <fieldset> … </fieldset>

Basic form elements

Page 8: Getting Information through HTML Forms

<form><fieldset>

<legend>Please leave a comment...</legend><label for="name">Name:</label><input type="text" name="name" value="" /><label for="email">Email:</label><input type="text" name="email" value="" /><label for="comments">Comment:</label><textarea name="comments" cols="45“ rows="5"></textarea><input type="submit" value="Submit" />

</fieldset></form>

Page 9: Getting Information through HTML Forms

• Best practice is to use CSS • However, tables are still used a lot for layout of

form elements • better than a messy form

Form Presentation

Page 10: Getting Information through HTML Forms

<form> <fieldset> <legend>Please leave a comment...</legend> <label for="name">Name:</label> <input type="text" name="name" value="" /> <br> <label for="email">Email:</label> <input type="text" name="email" value="" /> <br> <label for="comments">Comment:</label> <textarea name="comments" cols="45" rows="5"></textarea> <br> <input type="submit" value="Submit" /> </fieldset> </form>

Page 11: Getting Information through HTML Forms

<style> input, textarea {width: 400px;} </style> <form> <fieldset> <legend>Please leave a comment...</legend> <table> <tr> <td><label>Name:</label></td> <td><input type="text" name="name" value="" /></td> </tr> <tr> <td><label>Email:</label></td> <td><input type="text" name="email" value="" /></td> </tr> <tr> <td><label>Comment:</label></td> <td><textarea name="comments" cols="45" rows="5"> </textarea></td> </tr> <tr> <td colspan=2><input type="submit" value="Submit" /></td> </tr> </table> </fieldset> </form>

Page 12: Getting Information through HTML Forms

Column 1 Column 2

Row 1Row 2Row 3

Row 4

Page 13: Getting Information through HTML Forms

Form Presentation

• Best practice is to use CSS • However, tables are still used a lot for layout of

form elements • better than a messy form

• Next week we will look at CSS in a lot more detail so that you can get the hang of it.

Page 14: Getting Information through HTML Forms

Form elementsinput types

Page 15: Getting Information through HTML Forms

• Provides simple text input

text

<form> <label for=“firstname>First name:</label><br> <input type="text" name="firstname"><br> Last name:<br> <input type="text" name="lastname"> </form>

Page 16: Getting Information through HTML Forms

• Provides text input that is hidden from the user

password

<form> User name:<br> <input type="text" name="username"><br> User password:<br> <input type="password" name="psw"> </form>

Page 17: Getting Information through HTML Forms

<form action="action_page.php"> First name:<br> <input type="text" name="firstname" value="Mike"><br> Last name:<br> <input type="text" name="lastname" value="Crabb"><br><br> <input type="submit" value="Submit"> </form>

• Submit button for forms

submit

Page 18: Getting Information through HTML Forms

<form> Birthday: <input type="date" name="bday"> </form>

• The <input type="date"> is used for input fields that should contain a date.

date

Page 19: Getting Information through HTML Forms

• Provides for a selection of zero or more items from a list of options

checkboxes

<input type="checkbox" name="pets" value="loveCats">I love cats <br> <input type="checkbox" name="pets" value="loveDogs">I love dogs

Page 20: Getting Information through HTML Forms

• Provides for only one selection from a list of options

Radio buttons

<input type="radio" name="cats" value="loveCats">I love cats <br> <input type="radio" name="cats" value="hateCats">I have no soul

Page 21: Getting Information through HTML Forms

• Choose from a list of options • use the <select> tag • list <options>

Selection (drop down) Box

<label for="degreeTitle">Degree Title:</label> <select name="degreeTitle"> <option value="cs">Computer Science</option> <option value="dm">Digital Media</option> <option value="cnmd">Computer Network Management and Design</option></select>

Page 22: Getting Information through HTML Forms

• Provides for only one selection from a list of options

coloUr

<form> Select your favorite color: <input type="color" name="favcolor"> </form>

Page 23: Getting Information through HTML Forms

• Provides for only one selection from a list of options

email

<form> E-mail: <input type="email" name="email"> <input type="submit"> </form>

Page 24: Getting Information through HTML Forms

• Provides for only one selection from a list of options

URL

<form> Add your homepage: <input type="url" name="homepage"> </form>

Page 25: Getting Information through HTML Forms

HTML5 form improvements

email url

Reset color

check input is valid email address ([email protected])check input is valid web address (http://www.something.something)

Clears everything on the page

Select a colour

american spelling

Page 26: Getting Information through HTML Forms

Form elements

input attributes

Page 27: Getting Information through HTML Forms

• The value attribute specifies the initial value for an input field:

value

<form action=""> First name:<br> <input type="text" name="firstname" value="John"> <br> Last name:<br> <input type="text" name="lastname"> </form>

Page 28: Getting Information through HTML Forms

• The readonly attribute specifies that the input field is read only (cannot be changed)

read only

<form action=""> First name:<br> <input type="text" name="firstname" value="John" readonly> <br> Last name:<br> <input type="text" name="lastname"> </form>

Page 29: Getting Information through HTML Forms

• The disabled attribute specifies that the input field is disabled.

• A disabled element is un-usable and un-clickable. • Disabled elements will not be submitted

Disabled

<form action=""> First name:<br> <input type="text" name="firstname" value="John" disabled> <br> Last name:<br> <input type="text" name="lastname"> </form>

Page 30: Getting Information through HTML Forms

• The size attribute specifies the size (in characters) for the input field

size

<form action=""> First name:<br> <input type="text" name="firstname" value="John" size="40"> <br> Last name:<br> <input type="text" name="lastname"> </form>

Page 31: Getting Information through HTML Forms

• The maxlength attribute specifies the maximum allowed length for the input field:

maxlength

<form action=""> First name:<br> <input type="text" name="firstname" maxlength="10"> <br> Last name:<br> <input type="text" name="lastname"> </form>

Page 32: Getting Information through HTML Forms

• The autocomplete attribute specifies whether a form or input field should have autocomplete on or off

autocomplete

<form autocomplete="on"> First name:<input type="text" name="fname"><br> Last name: <input type="text" name="lname"><br> E-mail: <input type="email" name="email" autocomplete="off"><br> <input type="submit"> </form>

Page 33: Getting Information through HTML Forms

placeholder

• The placeholder attribute specifies a hint that describes the expected value of an input field (a sample value or a short description of the format).

<input type="text" name="fname" placeholder="First name">

Page 34: Getting Information through HTML Forms

required

• When present, it specifies that an input field must be filled out before submitting the form.

• The required attribute works with the following input types: text, search, url, tel, email, password, date pickers, number, checkbox, radio, and file.

Username: <input type="text" name="username" required>

This one is important

Page 35: Getting Information through HTML Forms

form security

Page 36: Getting Information through HTML Forms

form security

• Forms can be quite insecure when we are using them, we need to make sure that the right data is being seen by the right people

• and that no-one can get access to the really sensitive data!

For example…here’s how to find our a password on an unsecured computer

PS - DON’T DO THIS ONE SOMEONE ELSES COMPUTER - YOU’ll GET INTO A LOT OF TROUBLE!!

Page 37: Getting Information through HTML Forms

I’ve visited a website and have put in my username and password into the box provided. Let’s say that now I have to step away from my computer for 5 seconds…

Page 38: Getting Information through HTML Forms

Some unsavoury character comes along and looks at my screen. They right click on the password field and then go to inspect, I wonder what they are up to?

Page 39: Getting Information through HTML Forms

Now they are looking at the HTML for this web page and have an interest in the field that my password is in. It’s ok…its secure (it really isn’t).

Page 40: Getting Information through HTML Forms

They change the form element from:

<input type=“Password”>

to

<Input Type=“text”>

and now my password is being shown to the world #awkward!

Page 41: Getting Information through HTML Forms

• HTML Forms • Form Presentation • Form Elements

• Input Types • Input Attributes

• Form Security

Recap

Page 42: Getting Information through HTML Forms

get in touch!@mike_crabb

Lecturer in Web Development at Robert Gordon University (Scotland)

@rgucomputing Robert Gordon University - School of Computing Science and Digital Media