V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
hoythan
V2EX  ›  JavaScript

为什么要避免在文件上传时候使用 Accept 参数?

  •  
  •   hoythan · 2018-07-17 18:51:46 +08:00 · 3046 次点击
    这是一个创建于 2327 天前的主题,其中的信息可能已经有所发展或是发生改变。

    w3c school 上看到这么一段话

    (提示:请避免使用该属性。应该在服务器端验证文件上传。)

    这句话的意思应该是:请避免使用该属性验证文件格式,应该在服务器端验证文件上传。

    但是特么的很容易让菜鸡误解啊。为啥要用句号分隔。

    而且这个属性也不是用来效验文件的呀,这是用来区分文件的不是吗?

    而且 Google 相册,Twitter 等上传图片的地方都加了 Accept,并且没有在 MDN 上找到类似的话。

    难道使用 Accept 不是增强用户体验的属性吗?
    避免选择到其他文件导致重复选择或批量选择时能够合理跳过非规定格式文件?
    
    8 条回复    2018-07-24 18:37:20 +08:00
    leoleoasd
        1
    leoleoasd  
       2018-07-17 19:25:25 +08:00
    避免仅使用此属性
    yimity
        2
    yimity  
       2018-07-17 20:04:57 +08:00 via Android
    他的意思是避免仅在前端使用,需要后端也验证文件类型。因为前端限制不保险。
    Fishdrowned
        3
    Fishdrowned  
       2018-07-17 20:32:22 +08:00   ❤️ 3
    w3school 系列少看为妙,首先这系列网站跟 w3c 没有一毛钱关系,其次内容过时,而且错误百出。

    要看就看 Mozilla Developer Network
    ryd994
        4
    ryd994  
       2018-07-18 01:25:20 +08:00 via Android
    请避免依赖该属性
    zlhsvc
        5
    zlhsvc  
       2018-07-18 10:07:55 +08:00
    这个属性现在常用于用户方便选择,而数据校验后端都要重新校验一次
    crawl3r
        6
    crawl3r  
       2018-07-18 10:34:10 +08:00
    input 标签的 accept 是你在选择文件时能够选定的文件类型。但上传文件可以通过程序上传任意类型的文件(例如脚本或后门),为了安全所以你还要在服务端再次验证接收到的文件。
    reus
        7
    reus  
       2018-07-18 11:53:36 +08:00
    w3c school 垃圾
    MDN 好
    e8c47a0d
        8
    e8c47a0d  
       2018-07-24 18:37:20 +08:00
    w3scholl 很多都过时了,看 MDN 把。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3200 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:14 · PVG 08:14 · LAX 16:14 · JFK 19:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.