WEB安全程式設計

2021-08-15 20:31:17 字數 1675 閱讀 8025

近年來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 實踐 使用 ...