Suurin HTML-suodatintiedoston lataamiseen liittyvรค ongelma on, ettรค se voidaan helposti ohittaa. HTML-suodattimet on suunniteltu estรคmรครคn tietyntyyppisten tiedostojen lataaminen, mutta ne voidaan ohittaa muuttamalla tiedostopรครคtettรค tai kรคyttรคmรคllรค tyรถkalua tiedoston otsikon muokkaamiseen. Tรคmรค tarkoittaa, ettรค haitallisia tiedostoja voidaan edelleen ladata, mikรค saattaa johtaa tietoturva-aukoihin ja tietomurtoihin. Lisรคksi HTML-suodattimet eivรคt pysty havaitsemaan haitallista koodia tiedostossa, joten vaikka haitallisen tiedoston lataaminen estetรครคn, se voi silti sisรคltรครค haitallista koodia, joka voidaan suorittaa palvelimella.
<form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="fileToUpload" id="fileToUpload" accept=".html"> <input type="submit" value="Upload HTML File" name="submit"> </form>
1. Tรคllรค rivillรค luodaan HTML-lomake, jonka action-attribuutiksi on asetettu "upload.php" ja method-attribuutiksi "post", sekรค enctype-attribuutiksi "multipart/form-data":
Tiedoston tรคrkeyden suodattaminen ja vahvistaminen
Tiedostojen tรคrkeyden suodattaminen ja vahvistaminen HTML:ssรค on prosessi, jolla varmistetaan, ettรค vain tarpeelliset tiedostot ladataan verkkosivulle. Tรคmรค voidaan tehdรค asettamalla sรครคnnรถt ja parametrit ladattavien tiedostojen tyypeille, kuten tiedostokoko, tyyppi tai tunniste. Lisรคksi HTML-lomakkeita voidaan kรคyttรครค vahvistamaan kรคyttรคjรคn syรถte ennen kuin se lรคhetetรครคn palvelimelle. Tรคmรค auttaa varmistamaan, ettรค vain kelvolliset tiedot hyvรคksytรครคn, ja estรครค haitallisen koodin suorittamisen palvelimella. Lopuksi on tรคrkeรครค kรคyttรครค suojattuja menetelmiรค tiedostojen lataamiseen, kuten HTTPS- tai SFTP-protokollien kรคyttรคminen FTP:n sijaan.
Kuinka voin rajoittaa tiedostotyyppejรค HTML:ssรค
HTML-standardi ei tarjoa tapaa rajoittaa tiedostotyyppejรค kรคytettรคessรค elementti. Voit kuitenkin kรคyttรครค JavaScriptiรค tarkistaaksesi tiedostotyypin ennen sen lataamista.
Voit tehdรค tรคmรคn lukemalla tiedoston sisรคllรถn FileReader API:n avulla ja tarkistamalla sen tyypin. Jos se ei ole yksi sallituista tyypeistรค, voit estรครค sen lataamisen kutsumalla preventDefault() muutoskรคsittelijรครคsi vรคlitetyssรค tapahtumaobjektissa.
Voit myรถs kรคyttรครค HTML5:n hyvรคksymisattribuuttia -elementti mรครคrittรครค, minkรค tyyppiset tiedostot ovat sallittuja. Tรคmรค aiheuttaa selainkohtaisen valintaikkunan, kun kรคyttรคjรค yrittรครค ladata tiedoston, joka ei ole missรครคn hyvรคksytyistรค muodoista.