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] Mã hoá ký tự HTML chống XSS

    Bối cảnh

    Một trong những biện pháp phòng chống tấn công Cross-Site Scripting (XSS) cơ bản nhất là HTML-encode (mã hoá thực thể HTML) dữ liệu do người dùng nhập trước khi hiển thị lại trên trang web, nhằm ngăn trình duyệt diễn giải nhầm dữ liệu đó thành thẻ HTML hay mã JavaScript.

    Cho một chuỗi sss là nội dung người dùng nhập (có thể chứa các ký tự đặc biệt &, <, >, ", '), hãy viết chương trình mã hoá chuỗi này theo quy tắc HTML entity escaping sau, áp dụng tuần tự theo đúng thứ tự:

    1. & → &amp;
    2. < → &lt;
    3. > → &gt;
    4. " → &quot;
    5. ' → &#x27;

    Lưu ý thứ tự thay thế: phải thay & trước tiên, nếu không các entity vừa sinh ra (chứa &) sẽ bị mã hoá lặp lần nữa.

    Ví dụ: Với input <script>alert('XSS')</script>, output là &lt;script&gt;alert(&#x27;XSS&#x27;)&lt;/script&gt;.

    • Định dạng đầu vào:

      Một dòng duy nhất chứa chuỗi sss (có thể rỗng, độ dài tối đa 1000 ký tự, có thể chứa khoảng trắng và ký tự Unicode).

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

      In ra một dòng duy nhất là chuỗi đã được HTML-encode theo đúng quy tắc trên.

    Ví dụ:

    Đầu vào:

    Đầu ra:

    
    

    Đầu vào:

    <script>alert('XSS')</script>

    Đầu ra:

    &lt;script&gt;alert(&#x27;XSS&#x27;)&lt;/script&gt;
    

    Đang tải editor...