Javascript 如何防止作为URL字段一部分发送的XSS
目前,我正在一个特定的网页上显示一个链接,该链接的URL由用户通过POST请求设置。该网站将显示给显示该链接的第二个用户(用户2)。当点击链接时,它将返回到用户1的网页(或者这就是它的目的)。但是最近出现了这种情况,如果URL被修改或者用户1是一个坏用户,它会将URL设置为Javascript 如何防止作为URL字段一部分发送的XSS,javascript,java,security,xss,Javascript,Java,Security,Xss,目前,我正在一个特定的网页上显示一个链接,该链接的URL由用户通过POST请求设置。该网站将显示给显示该链接的第二个用户(用户2)。当点击链接时,它将返回到用户1的网页(或者这就是它的目的)。但是最近出现了这种情况,如果URL被修改或者用户1是一个坏用户,它会将URL设置为Javascript://%0Aalert(document.domain)//,当单击链接时,它将执行脚本 如何在Java中验证此URL并防止用户1在POST请求传入时将其设置为正确的URI?有(至少)两种方法可以解决此问题
Javascript://%0Aalert(document.domain)//
,当单击链接时,它将执行脚本
如何在Java中验证此URL并防止用户1在POST请求传入时将其设置为正确的URI?有(至少)两种方法可以解决此问题,您可以一起使用或单独使用:
http
和/或https
,就足以阻止您问题中提到的特定攻击,尽管您几乎可以肯定应该做更多的验证Java不是javascriptYup我知道这一点。我的后端服务器是java的。POST请求到达服务器,我想验证URL。然后你需要解释你是如何设置的,不清楚你在问什么。谢谢!我不想限制基于http或https的URI,因为我也想允许其他有效的URI(可能像google://),对于第二个解决方案,因为用户1发出POST请求来设置URL,所以我有点困惑,当数据发送给作为客户机的用户2时,密钥在这种情况下如何有用。让我知道你的想法!如果URL来自不受信任的来源(其他用户通常被视为不受信任的来源),并且您不想以任何方式对其进行限制,那么问题根本无法解决。毕竟,
javascript:
是一个完全有效的URI方案,用户可能会合法地选择它。你能得到的最接近的方法是编译一个“安全”URI方案列表-不应该包括javascript:
-并禁止任何其他内容。这是有道理的。是的,在我的例子中,我认为用户1是一个不受信任的源,所以我可能不得不列出一个安全URI列表。再次感谢!