Changeset 9
- Timestamp:
- 02/06/06 20:26:08 (3 years ago)
- Files:
-
- trunk/lib/CSS/Cleaner.pm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/CSS/Cleaner.pm
r7 r9 46 46 sub _stupid_clean { 47 47 my ($self, $ref) = @_; 48 my $reduced = lc($$ref); 48 my $reduced = $$ref; 49 $reduced =~ s/&\#(\d+);?/chr($1)/eg; 50 $reduced =~ s/&\#x(\w+);?/chr(hex($1))/eg; 49 51 $reduced =~ s/\s+//g; 50 52 $reduced =~ s/\\//g; 51 $reduced =~ s/&\#(\d+);?/chr($1)/eg;52 $reduced =~ s/&\#x(\w+);?/chr(hex($1))/eg;53 53 54 if ($reduced =~ m/\bdata\b|javascript|vbscript|expression|eval|cookie 55 |document|\bwindow\b|parent|\bthis\b|\bnew\b|behaviou?r|moz-binding/x) { 56 $$ref = "/* potential scripting */"; 54 if ($reduced =~ /\@import/i) { 55 $$ref = "/* suspect CSS: import rule */"; 57 56 return; 58 57 } 58 59 if ($reduced =~ /&\#/) { 60 $$ref = "/* suspect CSS: found irregular &# */"; 61 return; 62 } 63 64 if ($reduced =~ /[\x00-\x08\x0B\x0C\x0E-\x1F]/) { 65 $$ref = "/* suspect CSS: low bytes */"; 66 return; 67 } 68 69 if ($reduced =~ /[\x7f-\xff]/) { 70 $$ref = "/* suspect CSS: high bytes */"; 71 return; 72 } 73 74 if ($reduced =~ m!</!) { 75 $$ref = "/* suspect CSS: close HTML tag */"; 76 return;- 77 } 78 79 if ($reduced =~ m/\bdata:\b|javascript|vbscript|expression|eval|cookie 80 |\bwindow\b|\bparent\b|\bthis\b|behaviou?r|moz-binding/ix) { 81 my $what = lc $&; 82 $$ref = "/* suspect CSS: potential scripting: $what */"; 83 return; 84 } 85 59 86 } 60 87
