我想在我的网站上只允许使用手机摄像头直接拍摄的图片。有没有API或技巧可以帮助我判断一张图片是否是真实的,并且是几分钟前用iPhone或Android手机摄像头拍摄的,而不是从谷歌图片上获取的?
回答:
嗨 @***,有几种方法可以实现这一点。
WebRTC
为了防止从任何文件中上传图片,可以通过用户的网络摄像头直接在您的网页界面上拍摄图片。您需要
- 请求用户允许使用网络摄像头。
- 打开视频流
- 点击时捕获帧
- 保存帧
这将阻止普通用户上传“非实时”的图片。如果您正在考虑这种解决方案,请查看 WebRTC。虽然有很多博客文章展示了这种用例的演示。
例如:https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Taking_still_photos
EXIF验证
正如 @*** 所提到的,您可以尝试访问上传图片的 EXIF元数据,并运行一个验证机制,例如通过检查日期和时间字段来判断图片的新鲜度(如果您在寻找新拍摄的照片),或者通过检查相机型号字段来确保图片是由相机(手机、单反相机等)拍摄的。
免责声明:没有任何方法可以阻止恶意用户篡改JavaScript代码或文件来上传假图片。