当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《你如何与所有这些方式作斗争?-Javascript及其百万种不同的编写方式》经验,为你挑选了1个好方法。

我只是不知道该怎么想.看起来制作javascript的人们不遗余力地允许它以百万种不同的方式编写,以便黑客可以拥有一个实地日.

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


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

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


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

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

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

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

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

java脚本jav ascript

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

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

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

    // will work apparently
     // will work apparently
     // will work apparently
    // will work apparently
     // will work apparently
     // will work apparently

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

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

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

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



1> Mikael Svens..:

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

从CodePlex 下载Microsoft Web Protection Library.

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

 // will work apparently
 // will work apparently
 // will work apparently
// will work apparently
 // will work apparently
 // will work apparently

清除所有脚本.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有