【防注入】實踐有效網站防SQL注入(一)

來源:互聯網
上載者:User

幾年前,網站中大多數都存在sql注入。sql注入在這幾年可以說已經被廣大網站管理者所認知,並在搭建網站的時候都能注意到網站防注入這一問題,但為什麼我們EeSafe現在收錄的網站中,還是有很大一部分存在sql注入問題?我想並不是由於網站站長不知道sql注入的危害(危害我這裡就不說了,大家可以去百度等搜尋引擎上尋找),而是由於網站對於像sql注入這樣的問題的防範和發掘不夠深造成的,這裡我把防範sql的黃金方法和大家交流一下,應該能夠在網站防止安全性漏洞的方面起到推波助瀾的作用,至於如何發掘,我會在後篇提及。

能夠防範sql注入的好方法(注意,我這裡說的是“防範”)只有一個,那就是強化網站開發過程中的安全流程,有人說上硬體,那我要問上什麼硬體?防火牆?DDOS防攻擊?安全網關?這些基本上都防不住,或者個別的有防注入功能但至於效果怎麼樣,我就不多說了。我接觸的最有效方法只有一種:加強網站開發過程中的代碼編寫,安全性測試流程。由於負責編寫程式的程式員水平和經驗參差不齊,絕大多數程式員並沒有接受過安全開發培訓,所以在網站開發過程中要去進行安全方面的考量是不太現實的,這也就造成了到現在還有那麼多網站存在大量的安全隱患的局面,所以不僅是防sql注入,防任何網站安全問題都要從開發流程和方法上著手。

那怎樣著手防止,給大家幾個建議和方法。

首先明確自己要假設網站的技術架構,截止發文在eesafe網站安全聯盟上收錄的網站使用ASP或asp.net加MSSQL這樣的構架站52%,PHP+MYSQL的佔35%。

其次根據選擇的不同架構做不同的安全解決方案。

比如如果你的網站使用PHP+MYSQL開發的(現在流行的大多數CMS發布系統都是採用PHP)。

1.加強指令碼層(也就是在PHP方面加強防注入手段)。使用Php.ini的magic_quotes_gpc選項。在開發過程中凡是需要接受使用者輸入的位置使用addslashes函數、intval函數,htmlspecialchars函數,htmlentities函數,並加入javascript防注入漏洞過濾函數(現成的過濾函數可以在http://www.eesafe.com/bbs/thread-360-1-1.html上面找到)和PHP防注入漏洞過濾函數(現成的過濾函數可以在http://www.eesafe.com/bbs/thread-361-1-1.html上面找到)。

2.加強資料層(也就是資料庫方面加強防注入手段)。在網站和資料庫進行串連時(也就是串連池)使用的使用者具有普通許可權就可以了,不要使用超級使用者或資料庫擁有者的帳號。對提交資料的類型和格式進行嚴格檢查,確保資料類型符合要求,比如用mysql資料庫系統函數isnumberic()判斷傳到資料庫中的值是否是數字。另外在串連資料庫時盡量使用sssl或ssh。

其他構架的網站也和上面的相同,只是不同的構架防範細節側重點不同。當然,你可以下載使用本地版的EeSafe網站安全偵查工具,選擇相應的構架對你的網站進行原始碼級的注入檢測,該軟體提供對PHP,ASP,.NET,JSP等多種構架的檢測。並且現在可以通過申請得到正式版註冊號。好了,雖然現在網上有很多介紹網站防sql注入的文章,但我想通過本篇你會對防注入有一個更全面的認識,能夠給網站的開發和運營帶來協助。

原創文章,純手打,轉載請註明著作權歸屬:EeSafe網站安全聯盟

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.