2013-10-11 116 views
0

所以我想知道是否有一個可接受的方法來允許SQL注入。如何安全地允許SQL注入

例子:

在桌子上(S)/數據庫(一個或多個)

限制權限,你問爲什麼?

我的僱主想要設計一種方法來測試申請人的技能,一個建議是允許通過SQL注入提交簡歷。

有什麼想法?建議?

enter image description here

+4

我認爲你的老闆需要把技術性的東西留給專業人士。 –

+0

不要誤會我的意思,但人們正在尋找方法來防止SQL注入,而你的老闆正在尋找方法來獲得它!奇怪:) –

+0

你是一個多麼有趣的公司。我認爲具有有限角色的獨立實例應該可以做到這一點 –

回答

1

你可以使用的角色。爲用於連接數據庫的Web應用程序(或其他)創建一個角色。限制此角色僅允許INSERT並訪問必要的表格以進行申請。通過應用程序訪問數據庫的申請人只能使用SQL注入來添加他們的簡歷。

SQL中更有才能的人可能有可能以增加角色權限的方式使用注入。但是我認爲,如果角色只能訪問特定的表並且沒有CREATEGRANT特權,則用戶將無法創建新角色。

下面是一些角色的信息,讓你開始:

Adding Roles to MySQL with MySQL Workbench

Creating Roles in PostgreSQL

GRANT command - 用於權限添加到用戶的表,數據庫等,這頁是PostgreSQL的,但MySQL非常相似(請參閱this SO answer

+0

不會申請人能夠插入他們的簡歷,而不需要SQL注入嗎? –

+1

如果您只有一個表格,申請人可以輸入姓名和電子郵件,以便在職位發佈時發出警報。沒有直接的方式來上傳簡歷,但表單提供了聯繫數據庫。然後類似漫畫,你可以把'馬特');在名稱字段中插入「恢復...」。 我不清楚你爲他們設置了什麼或者給出了什麼指示。 – Matt

+0

或者,您可以爲申請人提供一個單獨的數據庫來注入他們的信息。申請人可以規避最初的有限訪問,並儘可能多地損害他們想要的,而無需您的僱主丟失他們所需的任何信息。 然後有一個腳本將信息保存在其他地方(這樣一個申請人不會刪除其他簡歷),並將數據庫權限重置爲其初始受限訪問權限。 – Matt

-1

鑑於背後的原因是爲了測試人們的能力,請創建一個數據庫,其中包含您可承擔的數據失去。設置一個表單,將其張貼到coldfusion或php或java或.net或其他類型的連接到該數據庫的頁面。

在窗體上,放一個textarea並提交按鈕。在表單目標頁面上,記錄他們放在textarea中的內容。比較日誌和數據庫,看看它是如何結果的。

然後測試你的心臟的喜悅。