2011-01-14 71 views
1

只有一兩個可信任的人擁有密碼。 htpasswd不在public_html目錄中。受保護文件夾中的腳本包含未清理的輸入。 SQL注入是否可能,沒有密碼?htacces/htpasswd有多安全?

+6

SQL注入或SQL是如何在這裏發揮作用的? – deceze 2011-01-14 08:27:46

+0

@deceze:unsanitized輸入。 – tdammers 2011-01-14 08:28:07

回答

6

SQL注入是否可能,沒有密碼?

假設您的.htaccess和.htpasswd實際上產生了一個用戶名和密碼的屏幕,它是安全的。如果用戶名和密碼的組合無效,Apache將返回一個HTTP 403:Forbidden頭,這意味着該請求從未傳遞給PHP。這意味着如果沒有有效的用戶名和密碼,您的泄漏腳本將無法執行。

受保護文件夾中的腳本包含未清理的輸入。

我認爲你應該考慮消毒輸入無論如何,安全頁面或不。

1

SQL注入是不可能的,因爲攻擊者沒有密碼將無法在首位通過Apache來獲得。

但是,由於密碼可以被輕易攔截(您可能想要使用HTTPS,如果它是公共網站的話),HTTP基本身份驗證會受到中間人攻擊。

0

的SQL注入的流動將仍然在這裏簡單地通過用戶名/密碼牆保護。

您必須記住,如果您不使用SSL,則密碼/用戶名將作爲電報上的明文傳遞。這意味着如果任何人可以嗅探他們將獲得用戶名/密碼的流量。

而且這種不保護你從一個合法用戶試圖在你的應用程序的一些SQL注入。你必須記住,大多數攻擊來自內部。

我會是你,我會把密碼作爲一個快速修復,但是當你有機會修復SQL注入/輸入衛生問題。

1

我不認爲有一種方法可以繞過它是否設置正確的密碼保護的目錄。

使用基本身份驗證密碼是以明文形式提交的,所以如果您不使用https並且您的人正在使用代理服務器,則可以通過代理服務器進行訪問。用戶也可以將密碼保存在瀏覽器中。

0

的.htaccess不會從注射救你。

試想一個情況,當你信任的人之一得到他的電腦上的病毒。病毒將他的密碼加密並提供給黑客。黑客通過SQL注入登錄並刪除數據庫。

即使這種情況沒有發生,總是會跳過您的查詢,因此用戶可以安全地在查詢中使用像「'」這樣的字符。

SELECT `name` FROM `table` WHERE `name` = 'pub 'cosa blanca''; --SQL error 
2

只是對這些輸入進行消毒。我是認真的。一個體系和最薄弱的環節一樣強大;即使你信任那些你允許訪問的人,也總會有其他攻擊可以用來解決這個問題。有幾個可能性:

  • 社會工程(可能性是無止境這裏)
  • 網絡嗅探(特別是當該網站不支持SSL)
  • 漏洞在受信任的用戶的瀏覽器或操作系統
  • 弱口令
  • 妥協的Web服務器(如果有人設法刪除.htaccess文件,全部丟失)
  • 釣魚
  • DNS欺騙
2

SQL注入不可能在htpasswd上,但還有其他漏洞。你已經把一個與放置文件到web目錄,但你也應該加入這個以您的htaccess防止Apache服務這些網頁:

<Files ~ "^\.ht"> Order allow,deny Deny from all </Files> 
3

無論設置的,你總是,總是總是處理數據,就好像它隨時會跳出監視器並且SQL直接注入你的心臟。你不問在x,y和z情況下是否可能,你總是認爲它是默認的。

它甚至不需要是惡意的,如果處理不當,任何包含引號的用戶輸入都可能導致查詢混亂,因此無論如何您都需要轉義輸入。