diff --git a/app/main/views/index.py b/app/main/views/index.py index 2cc653e6c..ca9cbe9cd 100644 --- a/app/main/views/index.py +++ b/app/main/views/index.py @@ -35,16 +35,26 @@ def pricing(): return render_template('views/pricing.html') -@main.route('/terms') -def terms(): - return render_template('views/terms-of-use.html') - - @main.route('/delivery-and-failure') def delivery_and_failure(): return render_template('views/delivery-and-failure.html') +@main.route('/design-patterns-content-guidance') +def design_content(): + return render_template('views/design-patterns-content-guidance.html') + + +@main.route('/information-security') +def information_security(): + return render_template('views/information-security.html') + + +@main.route('/terms') +def terms(): + return render_template('views/terms-of-use.html') + + @main.route('/_email') def email_template(): return HTMLEmail( diff --git a/app/templates/views/design-patterns-content-guidance.html b/app/templates/views/design-patterns-content-guidance.html new file mode 100644 index 000000000..bc46ef4df --- /dev/null +++ b/app/templates/views/design-patterns-content-guidance.html @@ -0,0 +1,145 @@ +{% from "components/banner.html" import banner_wrapper %} +{% extends "withoutnav_template.html" %} + +{% block page_title %} +Design patterns and content guidance – GOV.UK Notify +{% endblock %} + +{% block maincolumn_content %} + +
+
+ +

+ Design patterns and content guidance +

+ + {% call banner_wrapper(type='warning') %} +

This content is a work in progress

+ +

It should not be relied upon

+ {% endcall %} + +
+

Contents

+ + +
+ +
+

When to send notifications

+ +

Send notifications to reduce anxiety

+ +

Talk to your call centre staff to find out why people call – this is probably why they are anxious. For example:

+ +
    +
  • I made a claim online – did it go through?
  • +
  • I sent you an application – did you receive it?
  • +
  • I sent you some supporting documents – did you receive them?
  • +
  • Did you approve my application?
  • +
  • Have you sent my new passport yet?
  • +
  • Has my application got lost or stuck somewhere?
  • +
+ +

Tell users if they need to do something

+ +

If someone needs to do something, tell them. For example:

+ +

Your MOT expires on 28 September – get an MOT

+ +

The deadline for tax returns is 31 January – complete your self assessment tax return

+ +

Your passport photo didn’t meet our standards – take a new photo

+ +

Security checks

+ +

When someone does something important, send a security check to the people who might be affected. For example:

+ +
    +
  • We registered a Lasting Power of Attorney in your name
  • +
  • You no longer own the freehold for 1 Candle Street, Mile End, London
  • +
  • Sainsburys Ltd applied for planning permission for 3 Candle Street, Mile End, London
  • +
+ +

2-factor code

+ +

When someone wants to sign in, send a 2-factor authentication code to the number you have on file. For example: Your GOV.UK verification code is 123 456

+
+ +
+

Design patterns

+ +

Collecting contact preferences

+ +

Use radio buttons to ask the user how they’d like to be contacted:

+ +
    +
  • by post
  • +
  • be email
  • +
  • by text message
  • +
  • by phone call
  • +
+ +

When the user selects a contact method, dynamically prompt them for contact details (if you don’t already have them)

+ +

Ask the user to pick one primary contact method. Users don’t like duplicate notifications.

+ +

You can still contact them by other contact methods if appropriate.

+ +

Collect these using the patterns in the Government Service Manual and the Hackpad.

+ +

Tell the user they’re going to receive notifications

+ +

Tell the user that you will send them notifications. For example:

+ +
+

We will email you about this petition, and nothing else. You can unsubscribe at any time

+
+
+ +
+

Content guidance

+ +

Include one important message

+ +

Don’t explain the whole process – just tell the user what will happen next.

+ +
    +
  • If the user needs to do something, tell them what they have to do. Include a link if possible – see our Information security guidelines
  • +
  • When will the next thing happen? If the next step is important, tell them when it will happen. For example, we’ll make a decision by 28th October.
  • +
  • How long until they are done? If the next step isn’t important, just tell them when they’ll be completely finished. For example, you’ll get your new passport by 2nd November.
  • +
+ +

Don’t send a message for steps that aren’t important to the user. For example, you don’t need to tell the user about background checks unless they fail one of the checks.

+ +

Writing for notifications

+ +
    +
  • Write tailored content. You’re writing to just one person – so tell them exactly what they need to know
  • +
  • Write as if you’re speaking – use personal language (you, we etc)
  • +
  • Tell the user when you’ll do something (by Tuesday, by 28th October) not how long you’ll take (within 3 working days, within 6 weeks)
  • +
  • Follow GOV.UK content guidance
  • +
+ +

Writing for SMS

+ +
    +
  • Get the most important message in the first sentence
  • +
  • Write one idea per sentence
  • +
  • Make it as short as possible – but don’t use jargon or acronyms without explanation
  • +
  • Don’t say ‘Dear’ or ‘Hi’ – just launch straight in
  • +
+ +

Writing for emails and letters

+ +

Say ‘Dear’, not ‘Hi’ – some people prefer ‘Hi’ and some prefer ‘Dear’, but only the people who prefer ‘Dear’ care enough to complain when we say ‘Hi’

+ +
+
+ +{% endblock %} diff --git a/app/templates/views/information-security.html b/app/templates/views/information-security.html new file mode 100644 index 000000000..3fbe0f06b --- /dev/null +++ b/app/templates/views/information-security.html @@ -0,0 +1,179 @@ +{% from "components/banner.html" import banner_wrapper %} +{% extends "withoutnav_template.html" %} + +{% block page_title %} +Information security guidelines – GOV.UK Notify +{% endblock %} + +{% block maincolumn_content %} + +
+
+ +

+ Information security for text messages, emails and letters +

+ + {% call banner_wrapper(type='warning') %} +

This content is a work in progress

+ +

It should not be relied upon

+ {% endcall %} + +

A more pragmatic approach to information security

+ +

In the past, government has taken a risk-averse approach to information security. This resulted in services that were unhelpful and hard to use.

+ +

We’re switching to a more pragmatic approach to information security – one that balances a user’s needs to be kept informed and kept safe.

+ +

In the past, for example, our blanket no-links policy meant we were telling people to “search ‘the UK government’ and click the first result” rather than just telling them to “visit www.gov.uk”. Other services had a blanket policy of not sending any information at all, resulting in obtuse messages like “You have a message in your online account. Sign in to see the message.” (no sign-in link included).

+ +
+

Contents

+ + +
+ +
+

Start with needs – user needs, not government needs

+ +

Start by writing the message you want to send. Don’t worry about the information security aspect just yet – write the message you want to convey as clearly and directly as possible.

+ +

We have design patterns and content guidance to help you write clearly and convey the right information at the right time.

+ +

Once you have a message which meets user needs, look at it in relation to the risks below. Use this framework to decide if you need to change the message in order to keep the users safe.

+
+ +
+

Understand the risks

+ +

There are 3 main risks involved in sending notifications by text message, email or letter:

+ +
    +
  • Someone accidentally sees the notification
  • +
  • An attacker intercepts a message, or gains access to someone’s email inbox, phone messages or paper files
  • +
  • An attacker tricks the user by sending a fake notification (phishing)
  • +
+ +

Someone accidentally sees the notification

+ +

For some messages, the recipient would be unhappy if someone else accidentally saw the contents – for example, the results of a recent medical test.

+ +

This is a privacy issue – in this case the unintended recipient isn’t trying to steal money or identity information.

+ +

To address this risk, don’t reveal the important information in the subject line or opening sentence, or ask the user to sign in to see the information in full. More about this below.

+ +

An attacker intercepts a message, or gains access to someone’s email inbox, phone messages or paper files

+ +

It’s possible for hackers to intercept messages. Text messages, emails and letters can all be intercepted.

+ +

It’s also possible for a criminal to gain access to someone’s entire email inbox, phone messages or paper files. Email accounts can be hacked, phones and paper files can be stolen, left lying around or picked out of the rubbish.

+ +

In both cases, criminals are looking for information they can use to commit fraud. To address this risk, don’t send payment details, ID numbers or any other information that can be used for fraud. More about this below.

+ +

An attacker tricks the user by sending a fake notification (phishing)

+ +

In this scenario, a hacker sends lots of messages pretending to be from an official government service, hoping to trick someone into revealing information of value.

+ +

This is known as a ‘phishing attack’.

+ +

To address this risk, don’t send requests for personal information of any kind, unless the request is directly connected with a transaction. More about this below.

+
+ +
+

Information security guidelines

+ +

Protect the user’s privacy

+ +

If you think the recipient might be upset if someone accidentally saw the message contents, either:

+ +
    +
  • use a fairly generic subject line and opening sentence, and only give the information in full within the body of the message, or
  • +
  • send a fairly generic message which asks the person to sign in to see the information in full
  • +
+ +

Remember that even the sender ID also reveals information. For example, don’t set your sender name as ‘STI clinic’.

+ +

Don’t send information that can be used for fraud

+ +

To reduce the risk if messages are intercepted, hacked or stolen, don’t send information that can be used for fraud – either now or in the future:

+ +
    +
  • payment details
  • +
  • passport, driving licence, or National Insurance numbers, or any other personal ID numbers
  • +
  • the person’s date of birth, mother’s maiden name or other information commonly used for identification
  • +
  • the person’s full address or previous addresses
  • +
  • passwords (c’mon team)
  • +
  • payment amounts – if you use them as a form of identification
  • +
+ +

Payment details can be used for fraud straight away. Other information requires a bit more work. For example, an attacker might use one piece of information to get hold of another, eventually gaining enough information to commit fraud. Or a criminal might use information from several old messages to steal someone’s identity.

+ +

Don’t send requests for personal information of any kind, unless the request is directly connected with a transaction

+ +

To reduce the risk from phishing attacks, don’t send requests for personal information of any kind, unless the request is directly connected with a transaction.

+ +

It’s OK to send a request for personal information if it’s directly connected with a transaction. Here are two examples of where it would be OK:

+ +
    +
  • Someone clicks a ‘Forgot your password?’ link – it’s OK to send them a link where they can reset their password
  • +
  • Someone’s MOT is about to expire – y
  • +
+ + + +

The same 2 rules above apply to links, too:

+ +
    +
  • Don’t send links that reveal information that can be used for fraud
  • +
  • Don’t send unsolicited messages that include a link requesting personal information of any kind (it’s OK to send a message with a link requesting information if the user has just requested it)
  • +
+ +

There are additional rules that apply specifically to links:

+ +
    +
  • Links must point to a .gov.uk domain – for example, https://www.gov.uk or https://www.armslengthbody.gov.uk
  • +
  • Links must show the URL in full – for example https://www.gov.uk/vehicle-tax, not Vehicle tax
  • +
  • Don’t use redirects or tracking links – disguising the URL makes phishing easier. Just show the URL in full
  • +
  • Don’t link directly to a sign-in page – this is a request for personal data. If the user needs to sign in to your service, link to your start page on GOV.UK
  • +
  • It’s OK to deep-link into your service, as long as the user doesn’t have to sign in to view the information or take action
  • +
+ +

Don’t send attachments

+ +

If you want to communicate something, write it in the body of the email. This is more user-friendly. If the information is too sensitive to include in the email body, it’s too sensitive to include in an attachment.

+ +

If you need to send someone a file, make the file available within your service, then link to it.

+ +

Criminals often use attachments to conceal viruses, spyware and other kinds of malware. We want people to be cautious about opening attachments.

+ +

Include the user’s name – it makes phishing more difficult

+ +

Start your message by addressing the user. For example, Hi Alice Smith or Dear Bob Jones. Including this extra piece of information makes phishing more difficult.

+ +

Use technical approaches to improve privacy and prevent phishing

+ +

There are several technical approaches to preventing phishing – SPF/DKIM, DMARC and TLS. You must use them.

+ +

SPF/DKIM and DMARC make sure your emails get delivered, whilst phishing and spam email gets filtered into junk mail.

+ +

TLS makes sure that no-one can intercept your emails.

+
+ +
+

You can do more if you want to

+ +

These guidelines are the minimum requirement. If you want to take more stringent measures for your service, that’s fine.

+ +

Just make sure you’re balancing your users’ needs to be kept informed and kept safe.

+
+ +
+
+ +{% endblock %}