2011-09-22 39 views
2

我正在與一個團隊做一個項目,我的一些團隊做了一個隱藏的顯示來查看mysql查詢。是否可以安全地在live上執行此操作?這個網站已經有一個月了。使用這種技術是否安全?是否可以安全地在您的活動網站上隱藏顯示mysql查詢

<div style="display: none;"> 
SELECT * 
FROM <statement> 
LEFT JOIN <statement> 
WHERE `username` = 'admin' 
ORDER BY <statement> DESC 
</div> 
<div style="display: none;"> 
SELECT * 
FROM <statement> 
LEFT JOIN <statement> 
WHERE <statement> 
ORDER BY <statement> 
LIMIT 10 
</div> 
+2

如果網站有一個用戶控制系統,你可以只顯示'staff' – 2011-09-22 03:08:04

+1

@ Dagon這是一個很好的妥協,你應該發佈作爲答案。將它限制爲一組特定的IP(例如辦公室的IP)也是很好的。 – ceejayoz

回答

8

這簡直是一個可怕的想法。你不應該讓這樣的信息可用。

+0

我警告他們使用這個。但項目負責人忽略它。我只是他的下屬。我知道一些網絡漏洞工具,如havij和acunetix我知道這不是一個好主意。我希望我的團隊中有人是現在閱讀這個線程是因爲他使用了lightsquid來過濾所有我瀏覽的內容。希望他們會聽取你們的意見。 – kedomonzter

+0

我希望他們會傾聽,但一個痛苦的建議。有時候糟糕的編程是一件好事。在商業環境中進行編程時,你會別無選擇,只能做錯事。只要不斷學習,當你爲自己做時,它就會正確,成長並繼續前進。 – Prospero

5

這絕對不是一個好主意。它爲攻擊者提供了關於數據庫結構的大量信息。如果他們在某個地方發現了SQL注入漏洞,那麼他們就會得到一個很好的路線圖,確切地說,要運行哪些查詢來徹底解決數據庫問題。

這是開發環境的用途。

+0

@ceejaydo你知道在調試現場有更好的工具嗎? – kedomonzter

+1

我想可以將這些查詢記錄到數據庫中的一個表中(並且通過配置設置打開/關閉該行爲,以免濫用數據庫),但這又是開發環境的用處。 – ceejayoz

+1

@mocca最佳做法是*不*調試您的現場網站。調試您的開發/分期網站,然後推送經過批准和測試的更改。 – Cheekysoft

1

我已經明確地完成了它,以便在需要快速調試問題的時間敏感場景中進行簡短測試。但如果一切可能,我會避免。

但是,我應該指出,這應該(理論上)不是安全問題。如果攻擊者有辦法在數據庫上執行SQL命令,那麼關於數據庫模式的信息確實非常有用。

當然還有其他可能的風險,但如果您的安全狀況良好,否則風險應該很小。只是重申一下,我不主張這種方法,因爲它仍然可以回來咬你。

+2

沒有人計劃在他們的代碼中添加SQL注入漏洞。如果他們在現場做這些事情,我不會相信他們的漏洞利用預防技能...... – ceejayoz

+0

這是一個公平的觀點:) –

2

其他職位已經死了,但我想補充一點,如果隱藏您所指的查詢的「技術」是使用css將顯示設置爲「none」,那麼不會不安全。它假設任何攻擊者看着你的網站都太愚蠢了,不知道如何查看源代碼。

我保證,如果有人足夠聰明,知道如何執行SQL注入攻擊,他們知道如何在瀏覽器中打開頁面並查看源代碼。

更不用說那些正在掃描漏洞的機器人只能看到的源碼,設置顯示屬性是毫無意義的。

1

我不確定你爲什麼要這樣做,但如果你想在瀏覽器中檢查SQL查詢是否完成,你應該看看FirePHP(http://www.firephp.org/) )。它是衆所周知的firebug firefox擴展(extenception ...)的擴展,可讓您查看您的代碼在瀏覽器中正在執行哪些查詢。但你必須安裝一些服務器端的東西。

除此之外,如果你不能真正執行任意的SQL查詢,我認爲它不應該是一個大問題,但我認爲你會更多的是一個目標。如果我戴着黑帽子,看到有人在源代碼中打印了他們的SQL查詢,我會比其他不這樣做的網站思考得更快,因爲他們可能會做其他奇怪(愚蠢)的東西。

相關問題