日期:2014-05-18  浏览次数:20553 次

如何过滤src和href中的危险脚本
如题,用正则表达式实现,网上找了一些,但都不可行,请教这里的高人了

过滤此类
<a   href= "javascript:alert( 'haha '); "> 点我吧 </a>
<img   src= "javascript:document.write( 'haha '); "   />

如何用正则表达式过滤这些html语句中的恶意脚本啊?

另:
[point=?]内容[/point]
如何用正则表达式取出?的值?

------解决方案--------------------
第一个问题,是要这个结果吗?

string yourStr = ................;
string result = Regex.Replace(yourStr, @ "( <a[^> ]*href=([ ' " "])?javascript[^> ]*> [\s\S]*? </a> | <img[^> ]*src=([ ' " "])?javascript[^> ]*> ) ", " ", RegexOptions.IgnoreCase);

第二个问题

string yourStr = ..................;
string point = " ";
Match m = Regex.Match(yourStr, @ "\[point=(? <p> [^\]]*)\] ", RegexOptions.IgnoreCase);
if (m.Success)
{
point = m.Groups[ "p "].Value;
}