Išspręsta: html filtro failo įkėlimas

Pagrindinė problema, susijusi su HTML filtro failo įkėlimu, yra ta, kad jį galima lengvai apeiti. HTML filtrai skirti blokuoti tam tikrų tipų failų įkėlimą, tačiau juos galima apeiti pakeitus failo plėtinį arba naudojant įrankį failo antraštei redaguoti. Tai reiškia, kad kenkėjiškų failų vis tiek galima įkelti, o tai gali sukelti saugumo spragas ir duomenų pažeidimus. Be to, HTML filtrai negali aptikti kenkėjiško kodo faile, todėl net jei kenkėjiško failo įkėlimas užblokuotas, jame vis tiek gali būti kenkėjiško kodo, kuris gali būti vykdomas serveryje.

<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. Šioje eilutėje sukuriama HTML forma, kurios veiksmo atributas nustatytas į „upload.php“, o metodo atributas – „post“, taip pat atributas „enctype“ nustatomas į „multipart/form-data“:

2. Šioje eilutėje sukuriamas failo tipo įvesties elementas, kurio pavadinimas yra „fileToUpload“, o ID yra „fileToUpload“, o atributas „accept“ nustatomas į „.html“:

3. Šioje eilutėje sukuriamas įvesties elementas, kurio tipas yra submit, kurio reikšmė yra „Įkelti HTML failą“ ir pavadinimas „submit“:

4. Ši eilutė uždaro formą:

Failų svarbos filtravimas ir patvirtinimas

Failų svarbos filtravimas ir patvirtinimas HTML yra procesas, užtikrinantis, kad į tinklalapį būtų įkeliami tik būtini failai. Tai galima padaryti nustatant įkeliamų failų tipų taisykles ir parametrus, pvz., failo dydį, tipą arba plėtinį. Be to, HTML formos gali būti naudojamos vartotojo įvesties patvirtinimui prieš pateikiant ją serveriui. Tai padeda užtikrinti, kad būtų priimti tik galiojantys duomenys, ir apsaugo nuo kenkėjiško kodo vykdymo serveryje. Galiausiai svarbu naudoti saugius failus įkeliant, pvz., HTTPS arba SFTP protokolus, o ne FTP.

Kaip apriboti failų tipus HTML

HTML standartas nenumato būdo apriboti failų tipus naudojant a elementas. Tačiau galite naudoti „JavaScript“, kad patikrintumėte failo tipą prieš jį įkeliant.

Norėdami tai padaryti, galite naudoti FileReader API, kad perskaitytumėte failo turinį ir patikrintumėte jo tipą. Jei tai nėra vienas iš leidžiamų tipų, galite neleisti jo įkelti, pakvietę preventDefault() įvykio objekte, perduotame pakeitimų tvarkyklei.

Taip pat galite naudoti HTML5 priėmimo atributą elementą, kad nurodytumėte, kokių tipų failai yra leidžiami. Kai vartotojas bandys įkelti failą, kurio nėra vienu iš priimtų formatų, atsiras konkrečios naršyklės dialogo langas.

Susijusios naujienos:

Palikite komentarą