2012-02-18 40 views
5

tôi tìm thấy nó bên trong ứng dụng "bản giao hưởng CMS", nó rất nhỏ:Chức năng này có đủ để phát hiện xss không?

https://github.com/symphonycms/xssfilter/blob/master/extension.driver.php#L100

Và tôi đã nghĩ đến việc ăn cắp nó và sử dụng nó trong ứng dụng của riêng tôi để khử trùng chuỗi với HTML để hiển thị. Bạn có nghĩ rằng nó hoạt động tốt không?

ps: Tôi biết có Trình lọc HTML, nhưng điều đó rất lớn. Và tôi thà thích cái gì đó ít được chấp nhận hơn, nhưng tôi vẫn muốn nó có hiệu quả.


Tôi đã thử nghiệm nó chống lại các chuỗi từ trang này: http://ha.ckers.org/xss.html. Nhưng nếu không chống lại "XSS định vị 2". Không chắc chắn làm thế nào để bất cứ ai sử dụng chuỗi đó để hack một trang web mặc dù :)

+1

Nó nói: “[…] sẽ xác định nếu nó * có khả năng * [là] một cuộc tấn công XSS”. – Gumbo

Trả lời

7

Không, tôi sẽ không sử dụng. Có rất nhiều cuộc tấn công khác nhau mà tất cả phụ thuộc vào bối cảnh dữ liệu được chèn vào. Một chức năng duy nhất sẽ không bao gồm tất cả. Nếu bạn nhìn kỹ, thực tế chỉ có bốn thử nghiệm:

// Set the patterns we'll test against 
$patterns = array(
    // Match any attribute starting with "on" or xmlns 
    '#(<[^>]+[\x00-\x20\"\'\/])(on|xmlns)[^>]*>?#iUu', 

    // Match javascript:, livescript:, vbscript: and mocha: protocols 
    '!((java|live|vb)script|mocha):(\w)*!iUu', 
    '#-moz-binding[\x00-\x20]*:#u', 

    // Match style attributes 
    '#(<[^>]+[\x00-\x20\"\'\/])style=[^>]*>?#iUu', 

    // Match unneeded tags 
    '#</*(applet|meta|xml|blink|link|style|script|embed|object|iframe|frame|frameset|ilayer|layer|bgsound|title|base)[^>]*>?#i' 
); 

Không có gì khác được kiểm tra. Bên cạnh các cuộc tấn công mà các xét nghiệm này không phát hiện (dương tính giả), nó cũng có thể báo cáo một số đầu vào nhầm lẫn là một cuộc tấn công (sai âm).

Vì vậy, thay vì cố gắng phát hiện các cuộc tấn công XSS, chỉ cần đảm bảo sử dụng đúng cách khử trùng.

1

Tôi nghĩ rằng nó là một công việc tốt để thử nghiệm chuỗi, ít nhất đó là những gì tôi có thể nói theo thử nghiệm của tôi.

+1

nó không khử trùng chúng, đây là để thử nghiệm chỉ – thelolcat

+0

Vâng, đó là chính xác những gì tôi có ý nghĩa. xin lỗi vì bất kỳ sự nhầm lẫn nào. – wadie

Các vấn đề liên quan