Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [An toàn thông tin] Lọc thẻ HTML theo whitelist

    Lọc thẻ HTML (tag whitelist)

    Khi cho phép người dùng nhập một ít định dạng (vd bình luận), ta chỉ giữ các thẻ an toàn và loại bỏ phần còn lại. Whitelist thẻ: b, i, u, p.

    • Thẻ có dạng <tag ...> hoặc </tag>.
    • Nếu tên thẻ (đưa về chữ thường) thuộc whitelist -> giữ nguyên thẻ.
    • Ngược lại -> xóa thẻ (thay bằng chuỗi rỗng).
    • Văn bản ngoài thẻ giữ nguyên.

    Ví dụ

    • Vào: <b>dam</b><script>x</script> -> Ra: <b>dam</b>x
    • Định dạng đầu vào:

      Một dòng HTML.

    • Ràng buộc đầu vào:

      Độ dài <= 2000. Dùng re.sub với hàm thay thế.

    • Định dạng đầu ra:

      In HTML đã lọc, chỉ còn thẻ cho phép.

    Ví dụ:

    Đầu vào:

    <b>dam</b><script>x</script>
    

    Đầu ra:

    <b>dam</b>x

    Giải thích:

    Giữ <b></b>, xóa <script> và </script>, giữ text x.

    Đang tải editor...