利用Word來設計電子問卷三(表單問卷的漏洞問題)

利用Word來設計電子問卷三(表單問卷的漏洞問題)

利用word表單功能來設計問卷,希望限制使用者回答問題的內容,所以我們限制文件的編輯僅能填寫表單,而不能在文件上進行進行其他的編輯,但是word在文件保護上的設計是有漏洞,尤其在word2003時當把文件存為xml格式,只要將xml檔案用文字編輯程式打開,仔細觀察可以看到底下這樣的一行

<w:documentProtection w:edit="forms" w:enforcement="on" w:unprotectPassword="00000000"/>

其中unprotectPassword代表是解除表單保護的密碼,因為我在進行文件限制編輯保護,但是密碼我沒有輸入只保留為空字串,所以使用者點選解除文件保護時無須輸入密碼即可解除保護,所以也就是說當使用者拿到一份word2003的檔案問卷,只要將它另存為xml格式,然後將xml中unprotectPassword="簡單編碼過的密碼" 取代為unprotectPassword="00000000",再存檔用word打開即可得到一份沒有密碼保護的限制編輯文件,使用者很容易可以變更表單內容。

這個漏洞微軟有發佈但是並沒有修改,只有在word2007新的xml格式才修正,所以存成word2007的xml格式不會看到明顯的unprotectPassword這個值,但是不要忘了因為word2007要維持向下相容所以它可以把.docx的格式存成相容2003的格式,尤其存成2003的xml格式,自動將文件保護的密碼更改為空字串也就是打開xml檔之後可以找到unprotectPassword="00000000"這一段,所以基本問題還是沒有解決,使用者只要用word2007將.docx檔案另存為2003的xml格式,再將2003的xml格式另存為word2007的檔案格式,一樣可以得到一份沒有密碼保護的表單文件。

所以在使用表單文件來進行問卷調查,我們要考慮的是確定使用者回傳的問卷是未經修改過,所以在讀取表單值中我們要加入一個檢測,檢查表單文件是否被修改過,透過前面的說明我們知道,我們無法保護表單問卷文件不被修改,但是透過檢驗密碼是否為原始設定的密碼,我們可以判斷此文件是否遭修改過,但是如果文件的保護密碼是被破解,則這個方法便無效。

cool      歡迎引用,請注明來源出處!

作者:楊煥謀