我想給我的網站用戶任意只讀訪問一個 SQLite3數據庫,而不讓他們寫入數據庫或做任何 其他損害。怎麼樣?安全的只讀sqlite3數據庫
使db文件只讀有一點幫助,但像「ATTACH」,「.load」和「.output」這樣的命令允許用戶讀/寫其他 文件,這些文件可能不受保護。
當然,如果我知道所有這些命令,我只是過濾它們, ,但我最擔心的是我沒有想到的命令。
我想簡要地改變sqlite3的源代碼,以禁止寫,但 這是比看起來難:即使SELECT語句用來做 一些內部INSERTS /等。
注:我認爲DOS攻擊,並會ULIMIT CPUTIME爲5秒或 東西。我主要關心的是對文件/「黑客」的破壞,而不是DOS。
chroot()可能工作,但似乎極端。
想法?
編輯:哇,我真的問這3年多前?
此後,I've actually written a program to do this.
我認爲這是相當安全的(但我可能是錯的)。
我想我真的在這裏尋找一個「元解決方案」。例如,如果我將整個系統從只讀CD上運行,我就不必擔心sqlite3可以/不可以做什麼。這在我的情況下太過於極端,但總的想法是我想找到一個解決方案,無論工作取決於sqlite3屬性。 – barrycarter 2010-09-17 21:40:55