[英]How secure is htacces/htpasswd?
密碼只有一兩個受信任的人。 htpasswd在public_html目錄之外。 受保護的文件夾中的腳本包含未清除的輸入。 沒有密碼就可以進行SQL注入嗎?
沒有密碼就可以進行SQL注入嗎?
假設您的.htaccess和.htpasswd實際上正在顯示您的用戶名和密碼的屏幕,那么它是安全的。 如果用戶名和密碼的組合無效,則Apache將返回HTTP 403:Forbidden標頭,這意味着該請求從未傳遞給PHP。 這意味着沒有有效的用戶名和密碼就無法執行泄漏的腳本。
受保護的文件夾中的腳本包含未清除的輸入。
我認為您應該考慮對輸入內容進行清理,無論頁面是否安全。
不管設置如何,您始終總是 始終處理數據,就好像它隨時都將跳出監視器,而SQL直接注入您的心中。 您不必問在x,y和z的情況下是否有可能,您始終假設默認情況下是這樣。
它甚至不需要惡意,如果處理不當,任何包含引號的用戶輸入都可能使您的查詢混亂,因此無論如何您都需要轉義輸入。
只需清理這些輸入即可。 我是認真的。 一個系統與其最薄弱的環節一樣強大。 即使您信任您可以訪問的人員,也總會有其他攻擊者可以利用它來解決此問題。 一些可能性:
htpasswd上無法進行SQL注入,但還有其他利用。 您已經將文件放置在Web根目錄之外,但還應通過將其添加到htaccess中來防止apache服務這些頁面:
<Files ~ "^\.ht"> Order allow,deny Deny from all </Files>
SQL注入是不可能的,因為沒有密碼的攻擊者一開始將無法通過Apache。
但是,HTTP Basic Auth容易受到中間人的攻擊,因為密碼很容易被攔截(如果它是公共網站,則可能要使用HTTPS)。
如果設置正確,我認為沒有辦法繞過受密碼保護的目錄。
使用基本身份驗證時,密碼以明文形式提交,因此,如果您不使用https,而您的人員正在使用代理,則有人可以在此處使用它。 用戶也可以在瀏覽器中保存密碼。
在這里,SQL注入流仍將僅由用戶名/密碼牆保護。
您必須記住,如果不使用SSL,則密碼/用戶名將以明文形式通過網絡。 這意味着如果任何人可以嗅探到該流量,他們將獲得用戶名/密碼。
同樣,這也無法保護您免受合法用戶在您的應用程序上嘗試SQL注入的攻擊。 您必須記住,大多數攻擊來自內部。
我將是您,我將密碼作為一種快速修復方法,但是當您有機會時,可以解決SQL注入/輸入衛生問題。
.htaccess無法將您從注射中拯救出來。
想象一下一種情況,當您信任的一個人在他的PC上感染病毒時。 病毒會竊取他的密碼並將其提供給黑客。 黑客登錄並通過SQL注入刪除數據庫。
即使這種情況沒有發生,也請務必轉義查詢,以便用戶可以在查詢中安全使用字符“'”。
SELECT `name` FROM `table` WHERE `name` = 'pub 'cosa blanca''; --SQL error
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.