XSS漏洞 href和js输出,以及常见防范措施

本文探讨了XSS漏洞中的href和JS输出问题,强调了输入过滤和输出转义的重要性。通过皮卡丘靶场的实验,展示了如何构造payload以触发XSS。对于href,单纯使用htmlspecialchars()不足,需要限制协议类型。而在JS输出场景下,应注意闭合输入以避免恶意脚本执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XSS漏洞,href和js输出,以及常见防范措施(本文仅供技术学习与分享)

原则:
输入做过滤,输出做转义

  • 过滤:根据业务需求进行过滤,比如输入点要求输入手机号,则只允许输入手机号格式的数字;
  • 所有输出到前端的数据都根据输出点进行转义,比如输出到html中进行html实体转义,输入到JS里面的进行js转义;

实验准备:

  1. 皮卡丘靶场:xss只href输出
  2. 皮卡丘靶场:xss只js输出

实验步骤:

  1. xss之href输出:
    构造payload:javascript:alert(111)并查看源码(href属性可以用JavaScript执行js)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    对href标签做防护,仅靠htmlspecialchars()是不够的,还需要做过滤,在输入的时候只允许HTTP和HTTPS开头的协议。

  2. xss之js输出:
    输入1111,并且查看源码,发现它将我们的输入传到js中,并且做判断,是否为tmac,再输出
    在这里插入图片描述

  3. 构造payload:xxxx' </script><script>alert(2222)</script>,闭合输入框$ms=‘1111’
    在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汉堡哥哥27

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值