Turvalliset ohjelmointikäytännöt
Soveltakaa tietoturvaperiaatteita yleisten haavoittuvuuksien, kuten cross-site scriptingin (XSS) ja tietovuotojen, estämiseen.
Turvalliset ohjelmointikäytännöt on ilmainen Selainlaajennusten kehittäminen (Chrome ja Edge)-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Selainlaajennusten kehittäminen (Chrome ja Edge)-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Selainlaajennusten kehittäminen (Chrome ja Edge)-kurssilla on yhteensä 4 oppituntia.
Miksi turvallisuus on tärkeää laajennuksissa
Selaimen laajennukset toimivat laajoilla käyttöoikeuksilla ja käsittelevät tiiviisti käyttäjätietoja sekä selausistuntoja. Siksi turvalliset ohjelmointikäytännöt ovat ehdottoman tärkeitä.
Heikko tietoturva voi johtaa vakaviin haavoittuvuuksiin, kuten sivustojen väliseen komentosarjahyökkäykseen (XSS) ja tietovuotoihin, jotka vaarantavat käyttäjän yksityisyyden ja järjestelmän eheyden.
XSS-haavoittuvuuksien ymmärtäminen
Sivustojen välinen komentosarjahyökkäys (XSS) tapahtuu, kun hyökkääjä syöttää haitallisia komentosarjoja luotettuun verkkosovellukseen tai tässä tapauksessa laajennuksen käyttöliittymään tai sisältökomentosarjoihin.
Näillä komentosarjoilla voidaan varastaa arkaluonteisia tietoja, kaapata käyttäjän istuntoja tai jopa muuttaa verkkosivustojen ulkoasua laajennukselle myönnettyjen käyttöoikeuksien puitteissa.
`innerHTML`-ominaisuuden vaarat
Yksi yleisimmistä XSS-hyökkäysten syistä verkkokehityksessä ja siten myös laajennuksissa on innerHTML-ominaisuuden käyttäminen epäluotettavan syötteen kanssa.
Jos otatte tekstiä suoraan käyttäjältä (esimerkiksi lomakekentästä, URL-parametrista tai jopa verkkosivun sisällöstä) ja lisäätte sen DOM-puuhun innerHTML-ominaisuuden avulla, kaikki tekstiin upotetut komentosarjat suoritetaan.
Turvallinen DOM-käsittely: `textContent`
Estääksenne XSS-hyökkäykset, kun näytätte epäluotettavaa raakatekstiä, käyttäkää aina textContent-ominaisuutta innerHTML-ominaisuuden sijaan.
textContent käsittelee kaiken syötteen raakana tekstinä, joten selain ei jäsennä eikä suorita HTML-tageja tai komentosarjoja. Se on ensimmäinen puolustuslinjanne.
`textContent` käytännössä
Kokeilkaa tämän yksinkertaisen JavaScript-esimerkin suorittamista. Huomatkaa, kuinka textContent näyttää komentosarjan turvallisesti tavallisena tekstinä, kun taas innerHTML yrittäisi vaarallisesti suorittaa sen.
const userInput = "<script>alert('XSS!');</script>";
// Simulate a DOM element
const divSafe = { textContent: '' };
const divUnsafe = { innerHTML: '' };
// Safe way: Using textContent
divSafe.textContent = userInput;
console.log("Safe (textContent):", divSafe.textContent);
// Unsafe way: Using innerHTML (DO NOT DO THIS!)
divUnsafe.innerHTML = userInput;
console.log("Unsafe (innerHTML):", divUnsafe.innerHTML);HTML:n puhdistaminen tarvittaessa
Mitä jos käyttäjän syötteestä on todella tarpeen sallia joitakin HTML-elementtejä, kuten lihavoitu tai kursivoitu teksti? Näissä tapauksissa textContent ei riitä.
Teidän on käytettävä vankkaa ja hyvin ylläpidettyä HTML:n puhdistamiseen tarkoitettua kirjastoa (esimerkiksi DOMPurify). Tällaiset kirjastot jäsentävät HTML:n, poistavat haitalliset tagit ja attribuutit sekä palauttavat turvallisen HTML:n. Älkää koskaan rakentako omaa HTML-puhdistinta.
Dynaamisen koodin suorittamisen välttäminen
Funktiot kuten eval(), new Function(), setTimeout(string) ja setInterval(string) suorittavat merkkijonossa olevan JavaScript-koodin.
Tämä on merkittävä tietoturvariski. Jos hyökkääjä voi hallita merkkijonoargumenttia, hän voi suorittaa mielivaltaista koodia laajennuksen kontekstissa ja mahdollisesti ohittaa muita tietoturvatoimia.
Tietovuotojen estäminen
Tietovuoto tapahtuu, kun arkaluonteisia käyttäjätietoja paljastuu tahattomasti tai haitallisesti luvattomille kolmansille osapuolille. Tämä on laajennusten kannalta kriittinen huolenaihe.
Olkaa erittäin varovaisia lähettäessänne tietoja laajennuksesta ulkoisille palvelimille. Tarkistakaa aina kohde, käyttäkää suojattuja protokollia (HTTPS) ja salatkaa arkaluonteiset tiedot tarvittaessa.
Vähimpien oikeuksien periaate
Kun määrittelette käyttöoikeuksia laajennuksen manifest.json-tiedostossa, noudattakaa aina vähimpien oikeuksien periaatetta.
Pyytäkää vain laajennuksen toiminnallisuuden kannalta ehdottoman välttämättömät käyttöoikeudet. Liian laajat käyttöoikeudet kasvattavat hyökkäyspinta-alaa ja tietovuotojen riskiä, jos laajennus vaarantuu.
Tietoturvallisten käytäntöjen tarkistus
Mitkä seuraavista ovat suositeltuja turvallisia ohjelmointikäytäntöjä selaimen laajennuksille?
Kertaus: laajennusten suojaaminen
Olette oppineet tärkeitä turvallisia ohjelmointikäytäntöjä vankkojen selaimen laajennusten rakentamiseen:
- Puhdistakaa kaikki syötteet: Käyttäkää
textContent-ominaisuutta raakatekstille ja vankkoja kirjastoja, kuten DOMPurify-kirjastoa, HTML:lle. - Välttäkää dynaamista koodia: Älkää koskaan suorittako koodia epäluotettavista merkkijonoista esimerkiksi
eval()-funktion avulla. - Vähimmät oikeudet: Pyytäkää vain laajennuksen tarvitsemat välttämättömät käyttöoikeudet.
- Estäkää tietovuodot: Olkaa varovaisia siirtäessänne käyttäjätietoja ja varmistakaa, että kohteet ja protokollat ovat suojattuja.
Kun otatte nämä käytännöt käyttöön, rakennatte luotettavampia laajennuksia, jotka suojaavat käyttäjien yksityisyyttä ja tietoturvaa.
Opi JavaScript tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 12
- Oppitunnit
- 48
Usein kysytyt kysymykset
Onko oppitunti ”Turvalliset ohjelmointikäytännöt” ilmainen?
Kyllä – oppitunnin ”Turvalliset ohjelmointikäytännöt” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Selainlaajennusten kehittäminen (Chrome ja Edge)-kurssin, päivitä CoddyKit PROhon. Selainlaajennusten kehittäminen (Chrome ja Edge)-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Turvalliset ohjelmointikäytännöt”?
Soveltakaa tietoturvaperiaatteita yleisten haavoittuvuuksien, kuten cross-site scriptingin (XSS) ja tietovuotojen, estämiseen. Harjoittelet Selainlaajennusten kehittäminen (Chrome ja Edge)-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Selainlaajennusten kehittäminen (Chrome ja Edge)-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Selainlaajennusten kehittäminen (Chrome ja Edge)-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Turvalliset ohjelmointikäytännöt”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Selainlaajennusten kehittäminen (Chrome ja Edge)-oppitunnilla?
Kyllä. Jokainen Selainlaajennusten kehittäminen (Chrome ja Edge)-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Edistyneiden käyttöoikeuksien ymmärtäminen
- Turvalliset ohjelmointikäytännöt
- Content Security Policy (CSP)
- Valinnaiset käyttöoikeudet ja ajonaikaiset pyynnöt