微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 你如何与所有这些方式作斗争? -Javascript及其百万种不同的编写方式

我只是不知道该怎么想.似乎制作 javascript的人不顾一切地允许它以百万种不同的方式编写,因此黑客可以有一个实地日.

我终于通过使用html敏捷包获得了我的白名单.它应该删除

<scrpit></script>

因为它不在我的白名单加上任何onclick,onmouse等.

但是现在看来你可以在属性标签中编写javascript.

<IMG SRC="javascript:alert('hi');">

由于我允许SRC属性,我的白名单无法帮助我.所以我提出了在最后查看所有有效属性并查看它们内部的想法.

所以它会找到每个html标签的所有允许属性(所以src,href等).

然后我找到了innertext并把它放到小写字母.然后我对此字符串进行了“javascript”的索引检查.

如果找到索引,我从该索引开始,并从该索引中删除每个字符.因此,在上述情况下,属性将保留为Src =“”.

现在它似乎不够好,因为你可以做类似的事情

java脚本
jav ascript

并且可能是每个字母之间的空格.

所以我不知道如何阻止它.如果它只是java和脚本之间的空间,那么我可以写一个简单的正则表达式,它不关心它们之间有多少空格.但如果确实你可以在每个字母之后放一个空格或标签或其他什么,那么我就不知道了.

然后,最重要的是,你也可以做所有这些其他好方法

<IMG SRC=&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#88;&#83;&#83;&#39;&#41;> // will work apparently
    <IMG SRC=&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0000114&#0000105&#0000112&#0000116&#0000058&#0000097&#0000108&#0000101&#0000114&#0000116&#0000040&#0000039&#0000088&#0000083&#0000083&#0000039&#0000041> // will work apparently
    <IMG SRC="jav    ascript:alert('XSS');"> // will work apparently
    <IMG SRC="jav&#x09;ascript:alert('XSS');">// will work apparently
    <IMG SRC="jav&#x0A;ascript:alert('XSS');"> // will work apparently
    <IMG SRC="jav&#x0D;ascript:alert('XSS');"> // will work apparently

http://ha.ckers.org/xss.html

我知道这是针对一些交叉脚本攻击(我没有制作XSS asp.net mvc已经很好地完成了这个)但是我不明白为什么它不能用于其他所有这些例子中的东西它会发出警报,因此可以用于其他事情.

所以我不知道如何检查和删除任何这些.

我正在使用C#,但我不知道如何阻止任何这些,并且不知道C#中的任何可以帮助我的东西.

解决方法

似乎你想要清理javascript,为此你在C#/ .Net中实际上有一个很好的解决方案.

从CodePlex下载Microsoft Web Protection Library.

如果你通过Microsoft.Security.Application.Antixss.GetSafeHtmlFragment(html)运行你的html片段,那么你将得到这个输出

<img src=""> // will work apparently
<img src=""> // will work apparently
<img src=""> // will work apparently
<img src="">// will work apparently
<img src=""> // will work apparently
<img src=""> // will work apparently

清除了所有脚本.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐