Skip to content » IGCSE Computer Science Course » Online Threats

Online Threats



Phishing is a very common form of attack, using using emails. Attackers send emails purporting to be from organisations such as banks and ecommerce sites, with the aim of tricking users in to clicking on the email links and divulging personal information, especially:

  • Usernames
  • Passwords
  • Credit / Debit card information

Threat Reduction Measures

  • Always be wary of clicking on links in emails.
  • Check emails for spelling mistakes or typos as these are a tell-tale sign that an email is fake
  • Don’t give your card details out or login details – if in doubt navigate directly to the website an sign in using the normal address




This attack centres around poisoning the DNS cache on either a computer, server or router, with the intention of redirecting a user’s browser to a fake version of a website when the user types in a domain name.

When you type in a web address (e.g. the browser needs to lookup the IP address (e.g.  that matches the domain name. It is to this address that the request to load the page is send. If a hacker is able to alter the contents of the DNS cache then your browser will be passed the wrong IP address and you will be redirected to the fake site without noticing.

Want to see your computer’s DNS cache? Open a CMD prompt and type in ipconfig /displaydns

Threat Reduction Measures

  • Most websites now use SSL certificates. These certificates are used by your browser to ensure that the site is genuine.
  • Most browsers and anti-virus products keep an up to date list of servers that host fake content and warn the users before a page is known.


DOS/ DDOS – denial of service attacks / Distributed Denial Of Service Attacks

Often an objective of attackers is to shut down a webserver or website. A simple way of achieving this is to overload the site with thousands and thousands of requests for data. The server is overloaded with requests and it crashes. This is known as a Denial Of Service Attack.(DOS)

In order to defend attack such an attack, webservers often block requests from an IP address if it starts to send too many requests. The only way to circumvent this defence is to attack the server from many machines, in many locations at once. This can only be achieved if you first find a vulnerability in client computers (or more recently Internet Connected Devices like webcams, Network Attached Storage, Smart devices). You take control of these devices and turn them in to a large BOTNET, getting thousands or millions of hacked devices to send requests to the intended target. This type of attack of known as a Distributed Denial of Service Attack.

Threat Reduction Measures

  • Enable DDOS protection on any web servers that you host.

Brute Force

Brute Force Attacks

This is useful again systems where either the website / system allows unlimited login attempts. The attacker keeps trying every possible password combination until they are successful. This form of attack is usually combined with a dictionary attack and is especially effective where short or common passwords are used (e.g. password123)


See how long it would take for your favourite password to be hacked using the following site:

Threat Reduction Measures

  • Use a hard to guess password where possible
  • Don’t use the same password for multiple sites.
  • Use 2 factor authentication
  • Change your password regularly
  • If you are developing your own website then enable login limits





Data interception and Theft

With the widespread adoption of WIFI in offices around the world, data interception has become widespread. Encrypted packets can be sniffed, and given enough packets and time, the WIFI encryption key can be computed and access to the network can be obtained. This is especially effective against older, weaker encryption technologies, for example WEP (Wired Equivalent Privacy)

A former student of mine did a class demonstration where he hacked my router WEP password in under ten seconds using free software!


Threat Reduction Measures

  • Use a strong encryption method such as WPA2
  • Always use end to end encryption on public wifi hotspots




SQL Injection

SQL Injection

An SQL Injection works by taking advantage of poor programming discipline while programming using SQL databases.

If user inputs are not sanitized (checked to make sure no illegal input has been entered) before processing, then an attacker can inject their own SQL statements in to the system.


Weak Python/SQL Code Example:

  • fname = input(“What’s you first name?”)
  • lname = input(“What’s your last name?”)
  • c.execute(“INSERT INTO STUDENTS VALUES(‘”+ fname + “‘,'”+lname+”‘);”)

In the example above the user input on lines 1 and 2 are directed added to the SQL statement using string concatenation, this allows the attack shown in the cartoon above to take place.

Threat Reduction Measures

Strong Python/SQL Code Example:

  • fname = input(“What’s you first name?”)
  • lname = input(“What’s your last name?”)
  • entry = (fname,lname)
  • c.execute(“INSERT INTO STUDENTS VALUES(?,?);”,entry)

In the example above the user input is first added to a tuple and then passed to execute function as an function parameter. This input is then sanitized internally within the execute function before being passed to the SQL query for processing.