跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Taiwan Tongues 台語維基
搜尋
搜尋
外觀
建立帳號
登入
個人工具
建立帳號
登入
檢視 SQL注入 的原始碼
頁面
討論
臺灣正體
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
外觀
移至側邊欄
隱藏
←
SQL注入
由於以下原因,您無權編輯此頁面:
您請求的操作只有這些群組的使用者能使用:
使用者
、taigi-reviewer、apibot
您可以檢視並複製此頁面的原始碼。
'''SQL 注入'''(英語:SQL injection), 嘛稱'''SQL 隱碼'''抑是'''SQL 注碼''',是發生佇應用程式佮資料庫層的安全漏洞。我簡來講,是佇輸入的字串內底挾帶 SQL 指令,佇咧設計不良的程式當中失覺察字元檢查,遮爾仔夾帶入去的惡意指令就會予資料庫侍服器誤認為是正常的 SQL 指令而執行,所以受著破壞抑是入侵。 有部份的人感覺 SQL 注入是干焦針對 Microsoft SQL Server,但是只要是支援處理 SQL 指令的資料庫侍服器,攏有可能受著這款手法的攻擊。 ==原因== 伊應用程式內底若有理由狀況,可能是應用程式正暴露佇咧 SQL Injection 彼高風險狀況之下: 一 . 佇咧應用程式內底使用字串聯結方式或者是聯合查詢方式組合 SQL 指令。 二 . 佇應用程式連結資料庫的時使用權限過大的口座(譬如講誠濟開發人員攏愛用上濟權限的系統管理員口座(如常看著的 root,sa 等)連接資料庫)。 三 . 佇資料庫當中開放矣無必要毋過權力過大的功能(譬如講佇 Microsoft SQL Server 資料庫內底的 xp \ _ cmdshell 延伸預存的程序抑是 OLE Automation 預存程序等等) 四 . 傷過信任使用者所輸入的資料,未限制輸入的特殊字元,猶閣有使用者輸入的資料做藏佇指令的檢查。 ==作用原理== 一 . SQL 命令會當查詢、插入去、更新、刪除等,命令的串接。若以分號字元為無仝命令的區別。(原本的作用是用於 SubQuery 抑是做查詢、插入去、更新、刪除…… 等的條件式) 二 . SQL 命令對傳入的字串參數是用單引號字元所包起來。(但連紲兩个單引號字元,佇咧 SQL 資料庫內底,則當做字串中的一个單引號字元) 三 . SQL 命令著,會當紮註解(連紲兩个減號字元 `--` 後的文字共註解,抑是「` / * `」佮「` * / `」所包起來的文字為註解) 四 . 所以,若是咧組合 SQL 的命令字串時,未針對單引號字元作跳脫處理的話,共這致使這字元變數咧添入去命令字串時,去予惡意竄改原本的 SQL 語法的作用。 ==例== 某一个網站的登入驗證的 SQL 查詢代碼為惡意填入與時,將致使原底的 SQL 字串予人添做也就是實際上執行的 SQL 命令會變做下跤按呢的所在達到無數號密碼,亦可登入網站。所以乎 SQL 注入予人叫駭客的閬縫遊戲。 ==可能造成的傷害== 一 . 資料表中的資料漏洩,譬如講企業佮個人機密資料,口座資料,密碼等。 二 . 資料結構予駭客探知,會當做進一步的攻擊(比如講 SELECT \ * FROM sys . tables)。 三 . 資料庫侍服器予人攻擊,系統管理員戶頭去予人竄改(比如講 ALTER LOGIN sa WITH PASSWORD='xxxxxx')。 四 . 取得系統較高權限了後,有可能會當佇網頁加入惡意連結、惡意代碼以及 Phishing 等。 五 . 經過資料庫侍服器提供的作業系統支援,予駭客會當修改抑是控制作業系統(比如講 xp \ _ cmdshell " net stop iisadmin " 會使停止侍服器的 IIS 服務)。 六 . 攻擊者利用資料庫提供的各種功能操縱檔案系統,寫入去 Webshell,落尾致使攻擊者攻陷系統七 . 破壞硬碟資料,半遂全系統(比如講 xp \ _ cmdshell " FORMAT C : ")。 八 . 取得系統上懸權限了後,會當針對企業內部的任一管理系統做大規模破壞,甚至予其企業倒去。 九 . 網站頭一頁予人竄改,致使聲譽受著損害。 ==避免的方法== 一 . 佇設計應用程式的時陣,完全使用參數化查詢(Parameterized Query)來設計資料存取功能。 二 . 咧組合 SQL 字攕時,先針對所傳入的參數加入其他字元(共單引號字元前加上跳脫字元)。 三 . 若使用 PHP 若開發網頁程式,需要加入跳脫字元之功能(自動共所有的網頁傳入參數,共單引號字元前加上跳脫字元)。 四 . 使用 php 開發,可寫入去 html 特殊函式,會當正確的阻擋 XSS 攻擊。 五 . 其他,使用其他更加安全的方式連接 SQL 資料庫。譬如講已經修正過 SQL 注入問題的資料庫連接元件,比如講 ASP . NET 的 SqlDataSource 物件抑是 LINQ to SQL。 六 . 增強網頁應用程式防火牆的防禦力 ==歷史== 有關 SQL 注入去的頭一擺公開討論始佇一九九八年左右。比如講,Phrack Magazine 中的一九九八年文章。 ==參考文獻== ==外部連結== * 賽迪網-儲存程序以外:SQL 注入去深入防禦(繁體中文) * MSDN 的 SQL 資料注入概述(繁體中文) * MSDN 的 SQL 注入去概述(簡體中文) * Protecting yourself from SQL Injection Attacks by Ross Overstreet(英文) * " SQLrand : Preventing SQL Injection Attacks " by Stephen W . Boyd and Angelos D . Keromytis(英文) * " What is SQL Injection ? " By CGISecurity . com(英文) * " What is Blind SQL Injection ? " By CGISecurity . com(英文) * Avoid SQL injection(英文) * PHP and SQL Injections(英文) * SQL Injection in Login Forms(英文) * xkcd 上以 SQL 注入做主題的 bàng-gà(英文) [[分類: 待校正]]
返回到「
SQL注入
」。