ปัญหาหลักที่เกี่ยวข้องกับการอัปโหลดไฟล์ตัวกรอง HTML คือสามารถข้ามได้อย่างง่ายดาย ตัวกรอง HTML ได้รับการออกแบบมาเพื่อบล็อกไฟล์บางประเภทไม่ให้อัปโหลด แต่สามารถข้ามได้โดยการเปลี่ยนนามสกุลไฟล์หรือใช้เครื่องมือแก้ไขส่วนหัวของไฟล์ ซึ่งหมายความว่ายังคงสามารถอัปโหลดไฟล์ที่เป็นอันตรายได้ ซึ่งอาจนำไปสู่ช่องโหว่ด้านความปลอดภัยและการละเมิดข้อมูล นอกจากนี้ ตัวกรอง HTML ไม่สามารถตรวจจับโค้ดที่เป็นอันตรายภายในไฟล์ได้ ดังนั้นแม้ว่าไฟล์ที่เป็นอันตรายจะถูกบล็อกไม่ให้อัปโหลด แต่ก็ยังมีโค้ดที่เป็นอันตรายที่สามารถดำเนินการบนเซิร์ฟเวอร์ได้
<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. บรรทัดนี้สร้างฟอร์ม HTML โดยตั้งค่าแอตทริบิวต์ action เป็น "upload.php" และแอตทริบิวต์ method เป็น "post" รวมถึงตั้งค่าแอตทริบิวต์ enctype เป็น "multipart/form-data":
การกรองและตรวจสอบความสำคัญของไฟล์
การกรองและตรวจสอบความสำคัญของไฟล์ใน HTML เป็นกระบวนการเพื่อให้แน่ใจว่าไฟล์ที่จำเป็นเท่านั้นที่อัปโหลดไปยังหน้าเว็บ ซึ่งทำได้โดยการตั้งค่ากฎและพารามิเตอร์สำหรับประเภทของไฟล์ที่สามารถอัปโหลดได้ เช่น ขนาดไฟล์ ประเภท หรือนามสกุล นอกจากนี้ยังสามารถใช้รูปแบบ HTML เพื่อตรวจสอบข้อมูลที่ผู้ใช้ป้อนก่อนที่จะส่งไปยังเซิร์ฟเวอร์ สิ่งนี้ช่วยให้มั่นใจได้ว่าจะยอมรับเฉพาะข้อมูลที่ถูกต้องเท่านั้น และป้องกันไม่ให้โค้ดที่เป็นอันตรายทำงานบนเซิร์ฟเวอร์ สุดท้าย สิ่งสำคัญคือการใช้วิธีการที่ปลอดภัยสำหรับการอัปโหลดไฟล์ เช่น การใช้โปรโตคอล HTTPS หรือ SFTP แทน FTP
ฉันจะจำกัดประเภทไฟล์ใน HTML ได้อย่างไร
มาตรฐาน HTML ไม่มีวิธีจำกัดประเภทไฟล์เมื่อใช้ไฟล์ องค์ประกอบ. อย่างไรก็ตาม คุณสามารถใช้ JavaScript เพื่อตรวจสอบประเภทไฟล์ก่อนที่จะอัปโหลดได้
ในการทำเช่นนี้ คุณสามารถใช้ FileReader API เพื่ออ่านเนื้อหาของไฟล์แล้วตรวจสอบประเภทของไฟล์ หากไม่ใช่ประเภทที่อนุญาต คุณสามารถป้องกันไม่ให้อัปโหลดได้โดยการเรียก preventDefault() กับออบเจกต์เหตุการณ์ที่ส่งไปยังตัวจัดการการเปลี่ยนแปลงของคุณ
คุณยังสามารถใช้แอตทริบิวต์ยอมรับของ HTML5 กับ องค์ประกอบเพื่อระบุประเภทไฟล์ที่อนุญาต ซึ่งจะทำให้กล่องโต้ตอบเฉพาะเบราว์เซอร์ปรากฏขึ้นเมื่อผู้ใช้พยายามอัปโหลดไฟล์ที่ไม่ได้อยู่ในรูปแบบที่ยอมรับ