我需要解決一個問題,JavaScript注入的形式textarea的和領域JavaScript注入
script type='text/javascript'
window.location='http:site.com';
/腳本
或
a href='javascript:...'
或
形式的行動.. 。
或
input name...
,但我保留某些HTML標記,例如A,B,UL ...這可能嗎?
我需要解決一個問題,JavaScript注入的形式textarea的和領域JavaScript注入
script type='text/javascript'
window.location='http:site.com';
/腳本
或
a href='javascript:...'
或
形式的行動.. 。
或
input name...
,但我保留某些HTML標記,例如A,B,UL ...這可能嗎?
嘗試使用HTML Purifier來指定您希望允許哪些類型的HTML保護您免受此類XSS攻擊。
如果您擔心XSS,您需要在服務器端處理輸入以確保其中沒有JavaScript。希望這Perl的例子將有助於(對正則表達式的道歉,這不是我的強項)
use strict;
my $str = <<HTML;
<body>
<div>
sfdasfasdfs
<script type="text/javascript">
window.location.href = "http://badsite.com";
</script>
sadfssdfssdf
</div>
</body>
HTML
$str =~ s/<script.*?>[\s\w\d\W]*<\/script>//g;
print "$str\n";
這不會刪除問題中給出的大部分示例。也就是說,它也不會去掉'
見http://stackoverflow.com/questions/1975613/how-can-i-allow-html-in-a -whitelist-with-php(並且忽略接受的答案(當前以零分)贊成關於HTML純化器的答案)。 – Quentin 2010-03-03 15:07:53