• 请不要在回答技术问题时复制粘贴 AI 生成的内容
supermaryy
V2EX  ›  程序员

想问大厂前端怎么防 XSS 攻击的? 靠前端写的时候注意,还是有专门的负责安全的人

  •  1
     
  •   supermaryy · Jun 25, 2018 · 11298 views
    This topic created in 3059 days ago, the information mentioned may be changed or developed.

    以我在小中厂的前端工作经历,XSS 防护从来就像鬼,听过没见过或者说重视程度低。我通过一些技术博客了解到前端方面防护 XSS 主要是对用户输入进行特殊字符过滤转义为 html 实体,对输出的数据进行编码,以及最好的方法是用 html 解析库对输入数据进行解析获取其中数据,然后根据这些数据和白名单重新构建 html 内容。

    然后问题就是,具体实践时,前端是要在开发时就要兼顾做到上面这些,还是会有专门负责安全的人员定期检查测试页面安全性并修改前端代码,还是有专门的库可以提供相应的功能

    13 replies  •  2025-08-19 13:39:36 +08:00
    luoway
    luoway
    Jun 25, 2018
    1
    前端自己写,然后找专人检查
    有专门的库 jsxss.com
    AV1
    AV1
    Jun 25, 2018
    2
    传统的 jQuery 开发,常常用字符串拼接方式来生成 dom 结构,且不做过滤和转义,是导致 xss 攻击主要原因。
    现代 web 开发框架如 vue.js 、react.js 等,在设计的时候就考虑了 XSS 攻击,对 html 插值进行了更进一步的抽象、过滤和转义。
    如 vue.js 避免使用 v-html,react.js 避免使用 dangerouslySetInnerHTML。可以在大部分情况下避免 XSS 攻击。
    enhancer
    enhancer
    Jun 25, 2018
    3
    从输入的角度来讲:
    攻击者可以绕过前端直接伪造 http 请求输入包含富文本的内容,所以防范一定是在服务器端做的,只不过后端同学有可能不知道怎样的 html 是合法安全,怎样不安全,需要前端配合告知白名单。
    从输出的角度来讲:
    前端拿到字符串去页面渲染的时候应该根据业务需要决定哪些标记不能出现,哪些可以,现在的模板渲染都自带了 富文本转义,防止 XSS 攻击。enhancer.io
    seancheer
    seancheer
    Jun 25, 2018
    4
    虽然不是前端。但是一般都会有相应的安全部门来扫描测试。
    开发自身也需要具备相应的安全知识,写出非常常见的漏洞有的公司是会被通报批评的。
    huilliuh
    huilliuh
    Jun 25, 2018 via Android
    5
    xsser 自己扫一边:)
    supermaryy
    supermaryy
    OP
    Jun 25, 2018
    6
    @huilliuh 竟然还有这种工具,谢谢,开阔了眼界
    MeteorCat
    MeteorCat
    Jun 25, 2018 via Android
    7
    防止 XSS 在后端防护比较常见吧
    badcode
    badcode
    Jun 25, 2018 via iPhone
    8
    input: 前端过滤,入库,后端过滤
    output: 后端过滤,输出,前端过滤
    shew2356
    shew2356
    Jun 26, 2018 via iPhone❤️1
    9
    前后端数据交互的时候 encode 之后,或者 base64 一下,能解决你百分之八十的问题
    nakupanda
    nakupanda
    Jun 26, 2018
    10
    我只注意到楼主站在船上拍照
    supermaryy
    supermaryy
    OP
    Jul 1, 2018
    11
    @shew2356 是不是前后端数据交互的时候只用 encode 就行,但是输出数据的时候还是要把特殊符号替换为 html 实体,因为 decode 出来的字符串还是包含</>这些特殊符号,不替换的话恶意代码还是会执行?
    shew2356
    shew2356
    Jul 1, 2018 via iPhone
    12
    @supermaryy 可以这么理解,数据还可以加密传输,意思是后端解数据的时候,必须 decode 或者解码,就算有恶意执行代码,在后端解析的时候就被拦截了,所以能达到目的
    wxf1259059284
    wxf1259059284
    Aug 19, 2025 via iPhone
    13
    大厂好像压根不防。谷歌地图好像也有 xss 漏洞,参数后面追加任意 url ,比如?url=https://www.huociyuan.com
    完整 url 是 https://maps.google.com/url?q=https://www.huociyuan.com/
    页面有回显,链接可点击,这应该是 xss 了吧?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4628 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 01:40 · PVG 09:40 · LAX 17:40 · JFK 20:40
    ♥ Do have faith in what you're doing.