Nalutas: html filter file upload

Ang pangunahing problema na nauugnay sa pag-upload ng file ng filter ng HTML ay madali itong ma-bypass. Ang mga filter ng HTML ay idinisenyo upang harangan ang ilang uri ng mga file mula sa pag-upload, ngunit maaari silang ma-bypass sa pamamagitan ng pagpapalit ng extension ng file o sa pamamagitan ng paggamit ng tool upang i-edit ang header ng file. Nangangahulugan ito na maaari pa ring ma-upload ang mga nakakahamak na file, na posibleng humahantong sa mga kahinaan sa seguridad at mga paglabag sa data. Bukod pa rito, hindi matukoy ng mga filter ng HTML ang malisyosong code sa loob ng isang file, kaya kahit na na-block ang isang nakakahamak na file mula sa pag-upload, maaari pa rin itong maglaman ng malisyosong code na maaaring isagawa sa server.

<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. Lumilikha ang linyang ito ng HTML form na may attribute ng pagkilos na nakatakda sa "upload.php" at ang attribute ng method ay nakatakda sa "post", pati na rin sa pagtatakda ng attribute na enctype sa "multipart/form-data":

2. Lumilikha ang linyang ito ng input element ng uri ng file, na may pangalan na "fileToUpload" at isang id ng "fileToUpload", at itinatakda ang accept attribute sa ".html":

3. Lumilikha ang linyang ito ng input na elemento ng uri ng pagsusumite, na may halagang "Mag-upload ng HTML File", at isang pangalan ng "isumite":

4. Isinasara ng linyang ito ang form:

Pag-filter at pagpapatunay ng kahalagahan ng file

Ang pag-filter at pagpapatunay ng kahalagahan ng file sa HTML ay isang proseso ng pagtiyak na ang mga kinakailangang file lang ang ina-upload sa isang web page. Magagawa ito sa pamamagitan ng pag-set up ng mga panuntunan at parameter para sa mga uri ng mga file na maaaring i-upload, gaya ng laki, uri, o extension ng file. Bukod pa rito, maaaring gamitin ang mga HTML form upang patunayan ang input ng user bago ito isumite sa server. Nakakatulong ito na matiyak na ang wastong data lamang ang tinatanggap at pinipigilan ang malisyosong code na maisakatuparan sa server. Panghuli, mahalagang gumamit ng mga secure na paraan para sa pag-upload ng mga file gaya ng paggamit ng HTTPS o SFTP protocol sa halip na FTP.

Paano ko paghihigpitan ang mga uri ng file sa HTML

Ang pamantayang HTML ay hindi nagbibigay ng paraan upang paghigpitan ang mga uri ng file kapag gumagamit ng isang elemento. Gayunpaman, maaari mong gamitin ang JavaScript upang suriin ang uri ng file bago ito i-upload.

Upang gawin ito, maaari mong gamitin ang FileReader API upang basahin ang mga nilalaman ng file at pagkatapos ay suriin ang uri nito. Kung hindi ito isa sa mga pinapayagang uri, mapipigilan mo itong ma-upload sa pamamagitan ng pagtawag sa preventDefault() sa event object na ipinasa sa iyong change handler.

Maaari mo ring gamitin ang attribute ng accept ng HTML5 sa iyong elemento upang tukuyin kung aling mga uri ng mga file ang pinapayagan. Magiging sanhi ito ng paglabas ng dialog box na tukoy sa browser kapag sinubukan ng isang user na mag-upload ng file na wala sa isa sa mga tinatanggap na format.

Kaugnay na mga post:

Mag-iwan ng komento