你的照片安全么?
我們平時(shí)拍攝的圖片,不僅包含了可見的像素信息,還包含了我們看不到的隱藏信息(元信息),而這些元信息,往往會(huì)不經(jīng)意間泄露我們的隱私.
我們先來看看平時(shí)我們拍攝的照片里面,到底藏了哪些信息;
(1) iPhone6s照片元信息的提取:
iPhone6s 運(yùn)行腳本手機(jī)拍攝的照片,元信息非常豐富,包含了光圈/快門等拍攝參數(shù),也包含了拍攝時(shí)間,拍攝地點(diǎn)等個(gè)人隱私信息,所以不要輕易將未經(jīng)處理的原圖發(fā)送給他人,尤其不要隨意上傳原圖!
(2) 佳能70D拍攝照片元信息的提取:
佳能70D 運(yùn)行腳本相機(jī)拍攝的圖片與手機(jī)類似,同樣包含了地理信息,拍攝時(shí)間信息;
相機(jī)拍攝的圖片,攝影師一般會(huì)使用軟件進(jìn)行后期處理,為了保護(hù)隱私,圖片在導(dǎo)出時(shí)記得勾選消除元信息的選項(xiàng)(下圖為Adobe Lightroom的導(dǎo)出示例)
Lightroom消除元信息不只是我們平常拍的照片,網(wǎng)站圖片的也可能存在安全隱患;
黑客通過爬蟲批量下載網(wǎng)站圖片,然后分析網(wǎng)站圖片的元數(shù)據(jù),從中獲取有價(jià)值的信息,有的網(wǎng)站對(duì)于用戶上傳的圖片處理的很好,有的網(wǎng)站做的就不夠理想...
(3) 高校網(wǎng)站:
高校的官網(wǎng)大多年久失修,底層框架陳舊,網(wǎng)站安全性不是很好,高校網(wǎng)站的圖片,一般沒有進(jìn)行過專業(yè)的后期處理,幾乎是拍完即用,有很多安全隱患,以我從學(xué)校官網(wǎng)下載的新聞圖片為例:
僅從圖片的命名就可以確定拍攝的時(shí)間;
通過讀取圖片的元信息可以了解到,相機(jī)型號(hào): 佳能750D;
拍攝時(shí)間:2017年6月23日下午4點(diǎn)15分16秒;
最應(yīng)該消除的GPS信息被保留了下來...
不講了...高校的網(wǎng)站安全建設(shè)有待提高...
學(xué)校 運(yùn)行腳本(4) 政府官網(wǎng)圖片元信息:
下面這張圖片是從政府官網(wǎng)找到的,與高校官網(wǎng)的圖片相比,圖片命名看不到有價(jià)值的信息,通過讀取元信息,能了解到:
相機(jī)型號(hào):Canon EOS-1D X Mark II,
拍攝時(shí)間:2017年9月13日下午3點(diǎn)48分13秒拍攝...
與高校相比,政府官網(wǎng)的圖片信息相對(duì)安全
官網(wǎng) 運(yùn)行腳本(5)簡書網(wǎng)站的圖片
簡書 運(yùn)行腳本簡書網(wǎng)站的圖片找不到任何圖片元信息的,大家可以放心上傳!不只是簡書,微博,微信,qq等主流的社交平臺(tái),為了減少服務(wù)器存儲(chǔ)圖片的開銷,會(huì)主動(dòng)幫用戶主動(dòng)消除元信息,只要你不往平臺(tái)上傳原圖,就基本可以保證信息的安全!
我想消除圖片隱藏的信息,怎么辦?
這里提供一個(gè)python腳本,將腳本和圖片放到一起,然后運(yùn)行腳本即可:
python腳本GIF演示中, 009是為了前后對(duì)比,驗(yàn)證清除的效果,其實(shí)只需運(yùn)行010即可!
批量消除圖片元信息的腳本(010刪除Exif.py)
import piexif import sys import os import redef remove_all_exif(image_names):for image_name in image_names:try:piexif.remove(image_name)print(image_name,"exif信息清除完畢")except Exception:passdef get_images():all_file_names = os.listdir()image_names = list()for file_name in all_file_names:if re.match(r".*\.(jpg|JPG|png)",file_name):image_names.append(file_name)print("已經(jīng)將",file_name,"添加到列表!")else:passreturn image_namesdef main():image_names = get_images()remove_all_exif(image_names)passif __name__ == "__main__":main()批量獲取圖片元信息的腳本(009提取Exif.py)
import os import sys import re import PILfrom PIL import Image from PIL.ExifTags import TAGSdef get_Exif(image_names):for image_name in image_names:print("開始讀取",image_name)exifData = dict()imgFile = Image.open(image_name)try:info = imgFile._getexif()if info:print(image_name,"的信息為:")for (key, value) in info.items():nice=TAGS.get(key, key)print("%s(%s) = %s"%(nice, key, value))if nice == "GPSInfo":print("---%s(%s) = %s---"%(nice,key,value))elif re.match(r"^Date.*", nice):print("%s(%s) = %s"%(nice, key, value))else:passelse:print("沒有任何元信息!")except Exception as e:print(e)def get_images():all_file_names = os.listdir()image_names = list()for file_name in all_file_names:if re.match(r".*\.(jpg|JPG|png|jpeg)",file_name):image_names.append(file_name)else:passreturn image_namesdef main():image_names = get_images()get_Exif(image_names)passif __name__ == "__main__":main()如果您喜歡python,喜歡故事,請點(diǎn)贊或關(guān)注我!您的支持是對(duì)作者最大的鼓勵(lì)!
總結(jié)
- 上一篇: OKR 和 KPI 的适用场景
- 下一篇: android 打包出现错误Error: