我的毕业设计系统里面的论坛部分,包括评论区和文章显示,采用vue的v-html命令,会导致XSS脚本注入问题,通过npm引入xss包可以解决一部分,但效果不尽如人意;我对比了本站--CSDN的评论发布功能,它是对评论内容进行了区分;当输入img标签时,我发现,如果里面输入的src路径不是一个正确的可访问的路径,它就不会被拦截,而如果是可访问的路径,它就可以被拦截;这个是如何做到的呢,以及,一般的后端与前端,应当如何取防止XSS攻击。
3条回答 默认 最新
- juer_0001 2023-04-19 18:52关注
首先,XSS攻击(Cross-Site Scripting)是一种常见的Web安全漏洞,攻击者利用网站没有对用户提交的数据进行充分过滤或转义的漏洞,在网页中注入恶意脚本,以达到攻击目的。
在前端方面,Vue中的v-html指令和React中的dangerouslySetInnerHTML方法都存在XSS风险。对于这种情况,可以通过前端输入过滤来进行防范,例如使用xss或dompurify等库对用户输入的数据进行过滤或转义。但是,仅仅在前端进行输入过滤并不足够,因为攻击者可以通过其他方式提交恶意数据,绕过前端的过滤,因此后端也应该进行输入过滤和输出编码。
对于图片的检测,常见的做法是在后端对上传的图片进行检查和过滤,比如检查图片类型、大小和是否包含恶意代码。同时,为了防止恶意图片被插入到网页中,可以使用Content-Security-Policy(CSP)头部来限制可信来源。
对于本站CSDN的评论发布功能,其实现原理可能是对图片路径进行了白名单限制,只有在白名单中的图片路径才可以被显示,其他非法的图片路径则会被拦截。但这种方法并不是完全可靠的,因为攻击者可以通过各种手段绕过这种限制。
因此,对于XSS攻击,应该采取多层防御策略,包括前端输入过滤、后端输入过滤和输出编码、图片类型过滤和CSP限制等措施。同时,定期对网站进行安全漏洞扫描和修复也是很重要的。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥50 C# 使用DEVMOD设置打印机首选项
- ¥15 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
- ¥20 OPENVPN连接问题
- ¥15 flask实现搜索框访问数据库
- ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
- ¥100 如何用js写一个游戏云存档
- ¥15 ansys fluent计算闪退
- ¥15 有关wireshark抓包的问题
- ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
- ¥15 向数据表用newid方式插入GUID问题