htaccess.txt ---------- 20191022 防止 SQLite 的資料庫檔案,透過網址方式被下載 https://www.minwt.com/website/server/21752.html 說到SQLite梅干並不感到陌生,先前在開發iOS APP時,梅干就曾用SQLite來記錄一些簡易的資訊,由於SQLite不用架設任何的資料庫伺服器,因此只需一般的環境下就可運作,所以經常被用來用於APP的資料儲存用,而最近梅干正在整合Google與綠界金流,因此身旁就有好友,與梅干分享到,怎不用SQLite,說真的梅干還沒將它運用在網頁上。 因此那一天梅干就研究了一下,將SQLite運用在網頁上,沒想到竟然是如此的簡單,而它就像是ACCESS一樣,用來記錄一些簡易的資訊相當的足夠,最重要的是,它本身就是一個檔案的型態,因此備份還原也超簡易,但因為SQLite是個檔案,當把它放到主機中時,有心人事只要知道db的路徑與名稱,就可透過網址將它給下載回來,再加上SQLite本身無法加密,也讓資料有外洩疑慮,因此要如何來防止資料庫被下載的狀況發生,現在就一塊來看看囉! Step1 首先,先建立一個.htaccess,並加入下方的語法。 Order allow,deny Deny from all Step2 再將.htaccess放置在資料庫的同一目錄下。 Step3 這時網址輸入資料庫路徑與名稱時,就會跳出找不到的頁面,如此一來就不用擔心,資料庫外洩的問題發生啦! ---------- 20191022 .htaccess是什麼?.htaccess幾個簡單應用 https://registerboy.pixnet.net/blog/post/26074656 .htaccess是什麼?.htaccess幾個簡單應用 .htaccess是什麼?.htaccess是在Apache HTTP Server這款服務器架設軟件下的一個對於系統目錄進行各種權限規則設置的一個文件,存在於Linux操作系統中。比較常見的是定義默認首頁名 稱,404頁面,301轉向,等等,還有更多的功能比如偽靜態,限製圖片外鏈,限制下載,密碼保護,去除頁面廣告等等,還有非常多的功能就不一一列舉。   其實這些功能大多可以在cPanel控制面板來進行設置的(相當於是.htaccess的圖形化界面)。但對於高手來講,cPanel對於htaccess提供的功能還是太少了點,手工編輯才是王道。相對於國內的虛擬主機,絕大多數是沒有這個功能的 目錄規則 一般我們將.htaccess文件放置在網站的根目錄,控制所在目錄及所有子目錄,而如果放置在子目錄中,會受上級目錄中.htaccess文件影響,是不起任何作用的。 舉幾個例子,以下部分引用維基百科。 自定義錯誤頁面(直接拷貝即可) ErrorDocument 404 /error-pages/not-found.html ErrorDocument 503 /error-pages/service-unavailable.html ————————————————————————- IP禁止 Order allow,deny Deny from 123.45.67.8 Deny from 123.123.7 Allow from all 上面能禁止IP地址在123.45.67.8以及IP地址開頭為123.123.7的任何人。例如123.123.74.42 就不能得到訪問。 ————————————————————————- 變更默認首頁 DirectoryIndex homepage.html ————————————————————————- 去除頁面廣告(不一定適用所有免費空間) LayoutIgnoreURI *.php LayoutIgnoreURI *.cgi LayoutIgnoreURI *.htm LayoutIgnoreURI *.html LayoutIgnoreURI *.txt ————————————————————————- 頁面跳轉 Redirect page1.html page2.html 如果某人訪問 http://www.example.com/page1.html,他將被跳轉到(帶有HTTP狀態代碼302)的http://www.example.com/page2.html ————————————————————————- 服務器內置SSI AddType text/html .shtml AddHandler server-parsed .shtml Options Indexes FollowSymLinks Includes ————————————————————————- 防止圖片熱鏈 後面的 .htaccess規則使用了mod rewrite。 特別域名 RewriteEngine on RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?baddomain1\.com [NC,OR] RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?baddomain2\.com [NC,OR] RewriteCond %{HTTP_REFERER} ^http://([^/]+\.)?baddomain3\.com [NC] RewriteRule \.(gif|jpg)$ http://www.example.com/hotlink.gif [R,L] 非特別域名 RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?example.com/.*$ [NC] RewriteRule \.(gif|jpg)$ http://www.example.com/hotlink.gif [R,L] 除非 example.com有這個圖片,瀏覽器才能看到hotlink.gif. 注意:Hotlink熱鏈保護使用 .htaccess 依賴客戶端在http GET請求中發送正確的」提交」值。像嘗試使用Windows Media Player發送空白的提交到.htaccess 來保護電影檔案是無效的。 禁止.htaccess文件被查看 在.htaccess文件中加入如下代碼就可以禁止別人訪問你的.htaccess文件: order allow,deny deny from all 這個網上的大部分版本都有錯誤,大部分版本丟掉了 ,結果導致所有文件都被禁止訪問。如果用了錯誤的規則,所有內容都將無法訪問。 同樣道理,如果要禁止其他文件的訪問,用其他文件名替換就可以了。