Skip to content » IGCSE Computer Science Course » Internet Threats

Internet 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

Detecting Phishing Emails

Phishing emails are often quite easy to spot, especially if look closely at the email:

  • The email often doesn’t contain your real name / username, just ‘Dear Sir/Madam’
  • The email often has multiple spelling/grammar errors
  • The email address domain is different to the company email domain.    e.g.  [email protected] [email protected]
  • The email usually contains an urgent message that is designed to trick you into acting before you think properly about it.




Social Engineering ( People)

Social engineering covers a wide range of attacks where people are tricked in to divulging personal information or harming /compromising a system.





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)

Defending against brute force attacks

  • Force users to user a longer and more complex password
  • Limit login attempts to a site
  • Never use common usernames like ‘admin’ when setting up a website


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



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.


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)

Combating data interception

  • Change your passwords regularly
  • Use strong modern encryption like WPA2





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.

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.


Network Policy

Poor Network Policy

When network administrators set up the network policy, they may implement poor policies which allow a vector of attack by attack by hackers.

Examples include:

  • Allowing weak passwords
  • Not compartmentalizing data access
  • Not running network penetration tests / a security audit