轉載自Joomla!之門
作者:白健鵬
修改默認的jos_ 數據表前綴
Joomla!之門的《Joomla! 1.5網站防黑9條戒律》這篇文章中也強調要修改默認的數據表前綴,在Joomla!安裝過程中進行數據表前綴的設置當然很容易,但文章沒有說明“對於已經建成的網站,如何修改數據表前綴”。今天介紹一下這個方法:
- 以管理員身份登錄到Joomla! 後台;
- 進入“全局設置”(global configuration),找到“數據庫”標籤頁,修改原來的數據表前綴jos_ 為新的前綴(例如:fdasqw_),然後點擊“保存”;
- 通過phpMyAdmin 訪問你的網站數據庫;
- 點擊“導出”(export)標籤頁,所有參數保持默認值,直接點擊“執行”按鈕。導出過程可能需要一點時間;
- 導出完成後,打開得到的SQL文件,選擇全部代碼並複制,然後粘貼到文本編輯器(例如:Notepad++);
- 從phpMyAdmin 中選擇你數據庫中的全部數據表,刪除它們;
- 在Notepad++ 中,利用“查找替換”功能,將全部jos_ 字串替換為剛才設置的新前綴(fdasqw_);
- 完成替換後,複製全部代碼。進入phpMyAdmin,點擊SQL 標籤頁,將這些代碼粘貼到輸入框,然後點擊“執行”按鈕。
Joomla!之門提示:如果你的數據庫很大,那麼最後通過SQL方式導入的過程恐怕很難成功。對於大型數據庫文件,推薦使用BigDump工具。
去掉第三方擴展的名稱及版本號
大多數安全漏洞只存在於特定擴展的特定版本中。因此,為了防止黑客根據擴展名稱及版本號來迅速尋找“肉機”,就有必要去掉網站前台顯示的第三方擴展的名稱及版本號。
有些開發人員會在後台參數中留下“是否顯示作者版權鏈接”的選項,對於這些擴展,我們選擇“否”即可;大多數第三方擴展的作者都會在前台留下一個版權鏈接,裡面含有該擴展的名稱和版本號。去掉這些hardcod 方式的版權鏈接的方法是:
假設有一個com_extension擴展,將/components/com_extension目錄複製到PC上,用Notepad++打開其中一個php文件,然後使用“在多個文件中搜索”功能(勾選“搜索子目錄”),搜索前台所顯示的那個字串,找到之後直接從源代碼中刪除即可。
Joomla!之門提示:
有些擴展的版權鏈接使用了特殊的方式嵌入,例如Artio JoomSEF,用上述方法是無法刪除的。如果你發現某個特殊版權標記無法刪除,可以到Joomla!中文論壇發帖討論。
使用SEF 友好網址組件
SEF 友好網址不僅有利於網站的搜索引擎優化(SEO),也有利於提高安全防護作用。原因是:如果不啟用SEF,則Joomla! 默認的頁面URL 中會含有第三方擴展的名稱,如網址中option=com_contact 這部分,這裡com_contact 就是“聯繫人管理”組件的名稱。
黑客當然不是通過肉眼來尋找URL裡面的擴展名稱,他們會使用Google搜索技巧中的inurl方法來快速尋找。
推薦使用Artio JoomSEF,或者sh404SEF,或者其它某個SEF組件來對Joomla!默認的動態網址進行靜態化重寫,一方面隱藏了擴展名稱,另一方面也增強了SEO效果。
使用最新版本的Joomla! 核心及擴展
經常了解一下你正在使用的Joomla! 核心和第三方擴展是否有了新版本。如果有新版,就盡快升級。一般來說,新版本總是能夠修復舊版的安全漏洞或功能bug。
Joomla!之門提示:
任何升級操作之前,請做好網站的備份工作。強烈推薦使用Akeeba Backup備份工具。
給目錄及文件設置正確的權限(CHMOD)
只有當某個腳本會寫入到目錄或文件時,才將該目錄或文件的權限設置為777 或707。其它所有文件和目錄的權限都應該設置如下:
- PHP 文件:644
- 配置文件:666
- 其它目錄:755
Joomla之門提示:
這裡所說的CHMOD 權限系統是Linux/*nix 服務器平台特有的功能,如果你使用的是Windows 平台服務器,就沒有這個功能。強烈建議將Joomla! 運行在Linux 服務器上。
及時刪除殘留文件
有時候你可能安裝了某個擴展之後不久又不喜歡它了,多數用戶這時會進行“取消發布”操作,而不是“卸載”。如果是“取消發布”,則該擴展的文件仍然存放在你的網站空間,如果該擴展的PHP 文件正好存在一個安全漏洞,就很可能被黑客利用。因此,當你不再需要某個第三方擴展時,立即將它徹底刪除,而不要“取消發布”。
Joomla!之門提示:
當你通過Joomla!後台卸載某些組件後,其數據表或許並未刪除。如果你確認不再需要該組件,建議通過phpMyAdmin將其數據表也徹底刪除,以免某個設計不嚴謹的數據表遭到SQL Injection劫持。
修改.htaccess 文件
用文本編輯器Notepad++打開你Joomla網站根目錄下的.htaccess文件,添加下面的代碼進去:
########## Begin - Rewrite rules to block out some common exploits# # Block out any script trying to set a mosConfig value through the URL RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1 ,21}(=|%3D) [OR] # Block out any script trying to base64_encode crap to send via URL RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR] # Block out any script that includes a < script > tag in URL RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3E) [NC,OR] # Block out any script trying to set a PHP GLOBALS variable via URL RewriteCond %{QUERY_STRING} GLOBALS(=|[|%[0-9A-Z]{0,2}) [OR] # Block out any script trying to modify a _REQUEST variable via URL RewriteCond %{QUERY_STRING} _REQUEST(=|[|%[0 -9A-Z]{0,2}) [OR] # Block out any script that tries to set CONFIG_EXT (com_extcal2 issue) RewriteCond %{QUERY_STRING} CONFIG_EXT([|%20|%5B).*= [NC,OR ] # Block out any script that tries to set sbp or sb_authorname via URL (simpleboard) RewriteCond %{QUERY_STRING} sbp(=|%20|%3D) [OR] RewriteCond %{QUERY_STRING} sb_authorname(=|%20|%3D ) # Send all blocked request to homepage with 403 Forbidden error! RewriteRule ^(.*)$ index.php [F,L] # ########## End - Rewrite rules to block out some common exploits |
留言列表