javascript的替代方案:过滤冒号时

javascript的替代方案:过滤冒号时,javascript,xss,Javascript,Xss,我在我的网站上特意设置了一个易受攻击的表单来测试一些xss向量。 然后我想到了href xss,如果:被过滤了,那么xss怎么可能呢?因为你必须像这样插入javascript:alert(1)来逐字回答你的问题,如果只有,:,%和引号被过滤了,那么你仍然可以这样做 javascript: 请不要把这当作仅仅添加这个额外字符的提示。这正是你一直在玩的游戏 落后一步。如果你做了“过滤掉所有坏字符”的事情,你将不能允许无害的输入,所以是的 考虑一下当你开始寻找:和我通过jav

我在我的网站上特意设置了一个易受攻击的表单来测试一些xss向量。
然后我想到了href xss,如果:被过滤了,那么xss怎么可能呢?因为你必须像这样插入
javascript:alert(1)
来逐字回答你的问题,如果只有
%
和引号被过滤了,那么你仍然可以这样做

javascript:

请不要把这当作仅仅添加这个额外字符的提示。这正是你一直在玩的游戏 落后一步。如果你做了“过滤掉所有坏字符”的事情,你将不能允许无害的输入,所以是的

考虑一下当你开始寻找
:和我通过
javascript:&:#:5:8:。过滤器不会检测到
:那里
但是将删除冒号,结果将是
javascript:
在冒号被过滤掉之后,它再次被将死

您要做的是查看URL是否有一个方案,并将其与已知的好方案(如http和https)进行匹配。然后你也会有
将HTML编码应用于结果。这是防弹的,你不必玩游戏。

如果你过滤“:”,你将无法获得任何外部链接…请澄清你的问题,至少包括你在我的答案评论中发布的额外信息。