
Jokainen nettisivun rakentanut tietää tunteen: julkaiset sovelluksen, ja seuraavana yönä mietit, onko joku jo löytänyt siitä reiän — web-turvallisuus tuntuu usein abstraktilta, mutta konkreettiset käytännöt tekevät siitä hallittavaa. Tämä opas kokoaa yhteen OWASP:n tuoreimman Top 10 -listan pohjalta ne toimenpiteet, jotka oikeasti vähentävät riskejä SQL-injektioista HTTPS-salaukseen, ja antaa työkalut turvallisemman verkkosovelluksen rakentamiseen ja ylläpitoon ilman tietoturvaguruutta.
Tunnetuimpia web-haavoittuvuuksia: 10 (OWASP Top 10) · SSL/TLS-salausta käyttävien verkkosivustojen osuus: yli 90 % (Google Transparency Report, 2025) · SQL-injektiohyökkäysten osuus kaikista tietomurroista: 23 % (Verizon DBIR, 2024) · Monivaiheisen tunnistautumisen käyttöönotto vähentää tileihin kohdistuvia hyökkäyksiä: 99,9 % (Microsoft, 2024)
Pikakatsaus
- OWASP Top 10 on keskeinen viitekehys web-tietoturvalle (OWASP Foundation)
- Tarkkaa prosenttiosuutta web-sovelluksista, jotka käyttävät monivaiheista tunnistautumista, ei ole yleisesti julkistettu (Microsoft)
- Uusin OWASP Top 10 -versio on vuoden 2025 päivitys (OWASP Foundation)
- Ohjelmistotoimitusketjun hallinta nousee uudeksi riskiluokaksi (OWASP Foundation)
Seuraava taulukko kokoaa keskeisimmät web-tietoturvan tunnusluvut, joita voidaan käyttää priorisoinnin tukena.
| Kuvaus | Arvo |
|---|---|
| Tunnetuimpia web-haavoittuvuuksia | 10 (OWASP Top 10) |
| SSL/TLS-salausta käyttävien verkkosivustojen osuus | yli 90 % (Google Transparency Report, 2025) |
| SQL-injektiohyökkäysten osuus kaikista tietomurroista | 23 % (Verizon DBIR, 2024) |
| Monivaiheisen tunnistautumisen käyttöönotto vähentää tileihin kohdistuvia hyökkäyksiä | 99,9 % (Microsoft, 2024) |
Mitkä ovat tärkeimmät web-sovellusten tietoturvakäytännöt?
Kokonaisvaltaisen tietoturvapolitiikan luominen
Web-sovelluksen tietoturva lähtee liikkeelle dokumentoiduista käytännöistä. OWASP Top 10 -lista toimii tässä keskeisenä viitekehyksenä. Ilman selkeää politiikkaa kehittäjät toimivat eri tavoin, ja aukkoja syntyy väistämättä.
- Määrittele, mitä tietoa sovellus käsittelee ja kuinka arkaluonteista se on.
- Dokumentoi vastuualueet: kuka vastaa tietoturvapäivityksistä, kuka testauksesta.
- Päivitä politiikkaa vähintään kerran vuodessa tai merkittävän toimintaympäristön muutoksen yhteydessä (NCSC-ohjeistus).
Ilman kirjattua politiikkaa yrityksen tietoturva on yksittäisten kehittäjien harteilla — ja kun he vaihtavat työpaikkaa, tieto katoaa mukana.
Sovellusturvallisuuden elinkaaren hallinta
Tietoturvaa ei voi lisätä sovellukseen jälkikäteen. Se on sisällytettävä jokaiseen kehitysvaiheeseen suunnittelusta ylläpitoon. Tämä tarkoittaa turvallisuusvaatimusten määrittelyä jo ennen ensimmäistäkään koodiriviä.
- Suunnitteluvaihe: uhkamallinnus (threat modeling) ja turvallisuusvaatimukset.
- Kehitysvaihe: turvalliset koodauskäytännöt ja staattinen analyysi.
- Testausvaihe: dynaaminen testaus ja penetraatiotestaus.
- Ylläpitovaihe: jatkuva seuranta ja päivitykset.
Miten tämä vaikuttaa sinuun: Jos et ole huomioinut turvallisuutta suunnitteluvaiheessa, joudut tekemään kalliita korjauksia myöhemmin. Aukot, kuten puutteellinen käyttöoikeuksien hallinta (Broken Access Control), ovat vaikeasti korjattavissa jälkikäteen.
”Tietoturva on sisällytettävä jokaiseen kehitysvaiheeseen suunnittelusta ylläpitoon.” – OWASP-projektin asiantuntija
The pattern: Ilman elinkaariajattelua tietoturva jää reaktiiviseksi ja kalliiksi.
Miten SQL-injektiolta suojautuminen onnistuu?
Parametrisoitujen kyselyiden käyttö
Parametrisoidut kyselyt ovat tehokkain tapa estää SQL-injektio. Niissä käyttäjän syöte erotetaan SQL-komennosta jo tietokantatasolla. Tämä tarkoittaa, että hyökkääjä ei voi sekoittaa syötettä ja komentoa toisiinsa.
- Käytä aina parametrisoituja kyselyitä (prepared statements) tietokantakirjastoissa kuten PDO (PHP) tai JDBC (Java).
- Älä koskaan yhdistä käyttäjän syötettä suoraan SQL-kyselymerkkijonoon.
- Varmista, että kaikki tietokantakutsut käyvät läpi parametrisoinnin — tämä koskee myös API-kutsuja.
Syötteiden validointi ja sanitointi
Parametrisointi on ensisijainen keino, mutta syötteiden validointi on toinen puolustuslinja. Kaikki käyttäjän syöte tulee käsitellä luottamattomana.
- Validoi syötteen tyyppi: tarkista, onko se numero, merkkijono vai jokin muu.
- Rajoita syötteen pituus ja sallitut merkit.
- Älä koskaan luota käyttäjän syötteeseen ilman tarkistusta — edes omassa järjestelmässäsi.
Jos käyttäjä syöttää lomakkeeseen nimen, tarkista ensin, että se sisältää vain kirjaimia, välilyöntejä ja mahdollisesti yhdysmerkkejä — älä koskaan välitä raakaa syötettä tietokantaan.
”Parametrisoidut kyselyt ovat edelleen tehokkain tapa estää SQL-injektio, mutta niitä on täydennettävä syötteiden validoinnilla.” – F5:n tietoturva-asiantuntija
The catch: Parametrisointi ja validointi yhdessä muodostavat kattavan suojan, mutta pelkkään validointiin luottaminen on riskialtista.
Mitä on cross-site scripting (XSS) ja miten sitä torjutaan?
XSS-tyypit: reflected, stored ja DOM-based
Cross-site scripting (XSS) on haavoittuvuus, jossa hyökkääjä onnistuu lisäämään haitallista JavaScript-koodia sovellukseen siten, että uhrit suorittavat sen selaimessaan. Kolme päätyyppiä ovat:
- Reflected XSS: Haitallinen koodi sisältyy URL-osoitteeseen tai lomakkeen syötteeseen, ja palvelin heijastaa sen takaisin ilman asianmukaista käsittelyä.
- Stored XSS: Haitallinen koodi tallennetaan pysyvästi palvelimelle, esimerkiksi kommenttikenttään, ja se suoritetaan jokaisella sivulatauksella.
- DOM-based XSS: Haavoittuvuus sijaitsee selaimen puolella, kun JavaScript käsittelee käyttäjän syötettä turvattomasti.
Output-encoding ja Content Security Policy
XSS:n torjunnassa kaksi keskeistä työkalua ovat output-encoding ja Content Security Policy (CSP). Output-encoding muuttaa merkit kuten < ja > turvallisiksi HTML-entityiksi, joten selain ei tulkitse niitä koodina. CSP on selaimen turvallisuusmekanismi, joka rajoittaa, mitä resursseja (esimerkiksi skriptejä) sivu voi ladata (MDN Web Docs).
- Käytä aina output-encodingia sivupohjissa (template engineissä kuten Twig tai React).
- Ota käyttöön CSP-otsikko, joka kieltää inline-skriptit ja rajoittaa sallittuja lähteitä (MDN Web Docs).
- Testaa CSP-asetukset ennen tuotantoon viemistä — liian tiukka politiikka voi rikkoa sovelluksen toiminnallisuuden.
CSP vähentää XSS-riskiä merkittävästi, mutta se ei yksinään riitä — output-encoding on pakollinen perustaso, jota ilman sovellus on haavoittuvainen.
What this means: XSS-torjunta vaatii monitasoista lähestymistapaa, jossa tekniikat täydentävät toisiaan.
Miten HTTPS otetaan käyttöön verkkosivustolla?
SSL/TLS-sertifikaatin hankkiminen
HTTPS-salaus on nykyisin välttämätön kaikille verkkosivustoille, eikä vain verkkokauppojen tai pankkien. Yli 90 prosenttia verkkosivustoista käyttää jo SSL/TLS-salausta (Google Transparency Report 2025). Sertifikaatin hankkiminen on helppoa:
- Hanki SSL/TLS-sertifikaatti luotettavalta varmentajalta, esimerkiksi ilmainen Let’s Encrypt tai maksullinen DigiCert.
- Asenna sertifikaatti palvelimellesi (Apache, Nginx, IIS).
- Ota käyttöön automaattinen uusiminen (esim. Certbot) sertifikaatin voimassaolon varmistamiseksi.
HSTS-otsikon asettaminen
HSTS (HTTP Strict Transport Security) on turvallisuusotsikko, joka pakottaa selaimet käyttämään aina HTTPS-yhteyttä, vaikka käyttäjä kirjoittaisi osoitteeksi http://. Tämä estää man-in-the-middle-hyökkäykset ja varmistaa salatun yhteyden (MDN Web Docs).
- Lisää HSTS-otsikko palvelimen konfiguraatioon.
- Aseta riittävän pitkä max-age (vähintään 6 kuukautta).
- Harkitse includeSubDomains-domeenin käyttöä.
The implication: Sertifikaatti ja HSTS yhdessä muodostavat vahvan perustan tietoliikenteen salaukselle.
Mitkä ovat yleisimmät web-sovellusten tietoturvauhat?
OWASP Top 10 -lista kattaa yleisimmät ja kriittisimmät web-sovellusten tietoturvauhat. Vuoden 2025 listan riskiluokat auttavat kehittäjiä priorisoimaan torjuntatoimenpiteitä.
OWASP Top 10 -uhat lyhyesti
Listan kymmenen riskiluokkaa ovat:
- Broken Access Control
- Security Misconfiguration
- Software Supply Chain Failures
- Cryptographic Failures
- Injection
- Insecure Design
- Authentication Failures
- Software or Data Integrity Failures
- Security Logging and Alerting Failures
- Mishandling of Exceptional Conditions
Haavoittuvuuksien priorisointi
Priorisoinnin avulla resurssit voidaan keskittää kriittisimpiin kohteisiin. OWASP Top 10 toimii tässä lähtökohtana, mutta organisaation tulee arvioida uhat oman sovelluksensa kontekstissa (NCSC).
The implication: Ymmärtämällä yleisimmät uhat organisaatio voi kohdentaa turvatoimensa tehokkaasti.
sentinelone.com, owasp.org, devguide.owasp.org, cheatsheetseries.owasp.org, radware.com, youtube.com, imperva.com, cloudflare.com, codelit.io
Usein kysytyt kysymykset
Mitä eroa on SQL-injektiolla ja XSS:llä?
SQL-injektio hyökkää suoraan tietokantaan, kun XSS hyökkää selaimen kautta käyttäjiin. SQL-injektio estetään parametrisoiduilla kyselyillä, XSS output-encodingilla ja CSP:llä.
Miten usein web-sovelluksen tietoturvaa tulisi testata?
Testausta tulisi tehdä jokaisen merkittävän päivityksen yhteydessä sekä säännöllisesti vähintään kerran vuodessa. Jatkuva integrointi ja penetraatiotestaus ovat suositeltuja.
Tarvitaanko HTTPS myös sisäisissä verkkosovelluksissa?
Kyllä, HTTPS on suositeltava myös sisäisissä sovelluksissa, koska sisäinen verkko ei ole automaattisesti turvallinen. Se suojaa tietoja salakuuntelulta.
Mitä tarkoittaa ’pitävä’ salasana web-sovelluksessa?
Pitävä salasana on riittävän pitkä (vähintään 12 merkkiä), sisältää eri merkkiyhdistelmiä ja on yksilöllinen kullekin palvelulle. Monivaiheinen tunnistautuminen on tärkeä lisä.
Voiko CSRF estää täysin?
CSRF (Cross-Site Request Forgery) voidaan estää lähes täysin käyttämällä CSRF-tokenia jokaisessa lomakkeessa ja varmistamalla tokenin tarkistus palvelimella. Täydellinen esto vaatii huolellista toteutusta.



