Có được biết đến thuộc tính style tấn công XSS như:tấn công XSS và phong cách thuộc tính
<DIV STYLE="width: expression(alert('XSS'));">
Hoặc
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
Tất cả các ví dụ I've seen sử dụng hoặc biểu hiện hoặc chức năng url - về cơ bản một cái gì đó chức năng như vậy đòi hỏi " ("và") ".
Tôi đang nghĩ đến việc phương pháp thẻ phong cách lọc sau đây, tôi sẽ kiểm tra chúng bằng sau (ước tính) ngữ pháp:
identifier: [a-zA-Z_][a-zA-Z0-9\-]*
number: [0-9]+
string: '[a-zA-Z_0-9 ]*'
value : identifier | number | string | number + "(em|px)" | number +"%"
entry: identifier ":" value (\s value)*
style: (entry ;)*
Vì vậy, về cơ bản tôi cho phép tính ASCII với các giá trị số hoặc giá trị chuỗi rất hạn chế (về cơ bản cho tên phông chữ) không cho phép sử dụng bất kỳ thứ gì trông giống như cuộc gọi.
Câu hỏi này đủ hay chưa? Có bất kỳ cuộc tấn công nào có thể làm điều gì đó như vậy không:
<DIV STYLE="this-is-js-property: alert 'XSS';">
Và thành công?
Ai có thể nghĩ đến lỗ hổng XSS của thử nghiệm như vậy không?
Để Làm cho nó rõ ràng
tôi cần các thuộc tính kiểu như nhiều công cụ như TinyMCE sử dụng chúng và lọc vô hại phong cách thuộc tính tắt sẽ làm tổn thương đáng kể các chức năng.
Vì vậy, tôi thích vượt qua các trường hợp phổ biến xóa tất cả những thứ có thể sử dụng @import, url, biểu thức v.v. Và cũng đảm bảo rằng cú pháp css cơ bản là ok.
trả lời
Không nó không phải là an toàn do nhấp Jacking dễ bị tổn thương.
công việc tốt, không biết nhiều –