近年來web安全越來越受到企業的重視,作為程式設計師,我們做程式安全的第一責任人,你對web安全程式設計又有多少了解呢?
其實了解常見的幾個安全程式設計方法就會讓大多數黑客無功而返,下面會一一枚舉:
1、sql注入(sql injection)
sql注入是指攻擊者利用拼接的sql引數,進行的一些非法操作。
潛在威脅:
a、繞過使用者登入認證
例如使用者登入 sql="select username from user where username = '"+v_username+"' and password='"+v_password+"'";
頁面使用者名稱可以輸入:tom' or 1 =1-- 則直接繞過了密碼驗證,由於密碼部分被注釋掉了
b、插入其他惡意語句
如:頁面使用者名稱可以輸入:tom'; delete from user; --
修復措施:
盡可能使用preparedstatment及下級方法excute excutequery excuteupdate等進行引數設定sql執行。
如果實在不能使用preparedstatment的形式,如in,則必須進行替換或者轉移掉危險的字元。
2、插入腳步xss(cross-site scripting)
xss是指如果有乙個頁面裡輸入資料,另乙個頁面顯示資料。
如果使用者在頁面輸入的是,那麼在顯示頁面由於可能使用的是<%=param>、或者其他列印語句,就會將上面的腳步直接列印字啊html裡,開啟頁面時就會直接彈出。
更有甚者如果直接連線的是其他腳步檔案,會存在更大的威脅。
處理辦法:
對《和》符號進行轉移
< 轉義成<
>轉義成》
"轉義成"
『轉義成%#39;
3、上傳隱患
主要是使用者上傳一些惡意檔案到伺服器,來控制系統許可權。
例如上傳乙個servlet檔案,然後訪問這個servlet,從而控制系統許可權或者破壞系統。
處理辦法:
a、只能上傳白名單裡的檔案型別
b、將上傳的檔案與web目錄分離,建乙個公用的資料夾放在不同的碟符
c、關閉資料夾的檔案執行許可權
如:download.action?path=c:/windows/system32/drivers/etc/host
處理辦法:
5、偽造引數隱患
由於現在的瀏覽器都支援表單資料修改,指令碼**修改,僅僅依賴於客戶端校驗或者傳值都是不安全的
例如:change.action?amt=300 --->amt=-300
6、腳步迂迴(非認證訪問、不適當的認證)
通過非正常手段檢視腳步,通過修改腳步或者其他措施迂迴安全驗證達到非法訪問的目的
server方追加校驗
7、重要資訊明文洩漏
通過get方法傳值時,重要資訊明文洩漏
處理辦法敏感資訊盡量儲存在server方,如果確實需要儲存在客戶端,最好加密處理
8、directory listing(伺服器檔案目錄暴露)
可以訪問伺服器的檔案目錄,將過多的伺服器檔案暴露給了使用者。
設定伺服器解除目錄檢索功能。
Web安全程式設計
安全程式設計能夠體現乙個程式設計師是否合格,什麼是安全程式設計,就是在開發階段避免系統漏洞,根據烏雲漏洞平台的統計,2014排行前10的安全問題如下 sql注入攻擊 最容易由程式設計師的程式設計疏忽產生的漏洞是sql注入和xss,sql注入的危害嚴重的情況是洩漏整個資料庫的資訊,後果不堪設想,xss...
Web安全 Web通訊
協議 url http 統一資源定位符 uniform resource locator 支援多種協議 http ftp 定位伺服器的資源 schema host port path query string anchor schema 底層協議 如 http https ftp host 伺服器的...
安全測試,web安全
web分為好幾層,一圖勝千言 完全沒有基礎我該從哪下手?完全沒有基礎學習 web 安全是件比較難的事情,所以我給出的最小的方案和最少的建議。工具 先用 awvs 掃幾個測試 大體了解一下 把掃到的漏洞復現,了解怎麼利用,主要了解 xsssql 注入 遠端 執行 開發 書籍 細說 php 實踐 使用 ...