Bao mat nhap mon

(ndkhanh157) #1

  1. Validation/Sanitize
    Một cách chống XSS khác là validation: loại bỏ hoàn toàn các kí tự khả nghi trong input của
    người dùng, hoặc thông báo lỗi nếu trong input có các kí tự này.


Ngoài ra, nếu muốn cho phép người dùng nhập vào HTML, hãy sử dụng các thư viện sanitize.
Các thư viện này sẽ lọc các thẻ HTML, CSS, JS nguy hiểm để chống XSS. Người dùng vẫn có thể
sử dụng các thẻ

, ,

    để trình bày văn bản.


    Làm ơn, xin nhắc lại, làm ơn dùng các thư viện sẵn có chứ đừng “hổ báo” viết lại để thể hiện
    trình độ. Đã có rất nhiều trường hợp dính lỗi XSS vì developer tự tin và tự viết code để loại bỏ
    kí tự đặc biệt và... để sót.



    1. CSP (Content Security Policy)
      Hiện tại, ta có thể dùng chuẩn CSP để chống XSS. Với CSP, trình duyệt chỉ chạy JavaScript từ
      những domain được chỉ định. Giả sử thiendia.com có sử dụng CSP, chỉ chạy JavaScript có
      nguồn gốc thiendia.com. Vì Khoa để mã độc trên khoatran.com nên đoạn JavaScipt sau sẽ
      không được thực thi.


    Để sử dụng CSP, server chỉ cần thêm header Content-Security-Policy vào mỗi response. Nội
    dung header chứa những domain mà ta tin tưởng.


    Lời kết


    Nói hơi chủ quan tí (do mình ko ưa PHP), số lượng trang web xây dựng bằng PHP bị lỗi XSS là
    nhiều nhất. Lí do thứ nhất là do số lượng web viết bằng PHP cực nhiều. Lí do thứ hai là mặc
    định PHP không encode các kí tự lạ. Các CMS của PHP như WordPress, Joomla rất mạnh với
    vô số plug-in. Tuy nhiên nhiều plug-in viết ẩu là nguyên nhân dẫn đến lỗi bảo mật này.


    Hiện tại, số lượng website bị lỗi XSS là khá nhiều, các bạn chỉ cần lang thang trên mạng là sẽ
    gặp. Như mình đã nói, XSS là một lỗi rất cơ bản, hầu như hacker nào cũng biết. Trang web bị
    lỗi này rất dễ thành mồi ngon cho hacker. Do vậy, các bạn developer nhớ cẩn thận, đừng để
    web của mình bị dính lỗi này.


    Một số link tham khảo:


     http://excess-xss.com/
     https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)
Free download pdf