如何保證Web Service的安全

2021-08-21 08:54:32 字數 2756 閱讀 2829

要以安全的方式訪問web服務方法,可以考慮以下安全措施:

l         是誰呼叫?——soapheader身份認證。

l         來自**?——訪問ip認證。

l         加密傳輸 ——ssl安全訪問。

這些安全保護措施常常是配合使用的。

1.web service實現步驟

(1)定義自己的soapheader派生類。

////定義自己的soapheader派生類

//public class mysoapheader : system.web.services.protocols.soapheader

////建構函式

////使用者id

//加密後的密碼

public mysoapheader(string nuserid, string npassword)

#region 屬性

////使用者名稱

//public string userid

set

}////加密後的密碼

//public string password

set

}

#endregion

#region 方法

////初始化

////使用者id

//加密後的密碼

private void initial(string nuserid, string npassword)

////驗證使用者名稱密碼是否正確

////使用者id

//加密後的密碼

//返回的錯誤資訊

//使用者名稱密碼是否正確

private bool isvalid(string nuserid, string npassword, out string nmsg)

else

}catch

}////驗證使用者名稱密碼是否正確

////使用者名稱密碼是否正確

public bool isvalid(out string nmsg)

#endregion

}

(2)新增基於soapheader驗證的web service介面方法:

////通過soapheader來增強web service的安全性

//[webservice(namespace = "")]

[webservicebinding(conformsto = wsiprofiles.basicprofile1_1)]

[toolboxitem(false)]

public class webservice_soap : system.web.services.webservice

//需要soapheader驗證

[soapheader("myheader")]

[webmethod(description="根據產品編號查詢產品的**", enablesession = true)]

public string getproductprice2(string productid)

products pro = new products();

return pro.getprice(productid);

}

}

2.客戶端呼叫具有soapheader的web service

//建立myservice物件

productservicesoap.webservice_soap service = new productservicesoap.webservice_soap();

//建立soap頭物件

productservicesoap.mysoapheader header=new productservicesoap.mysoapheader();

//設定soap頭變數

header.password = "admin";

header.userid = "admin";

service.mysoapheadervalue = header;

//呼叫web 方法

string strprice = service.getproductprice2("001");

通過soapheader對使用者口令進行驗證,只有授權的使用者才可以使用該介面。確保了訪問介面使用者的安全性。

在預設情況下,iis使用http協議以明文形式傳輸資料,web service就是使用http協議進行資料傳輸的。web service傳輸的資料是xml格式的明文。沒有採取任何加密措施,使用者的重要資料很容易被竊取,如何才能保護網路中傳遞的這些重要資料呢?

ssl(security socket layer)的中文全稱是加密套接字協議層,它位於http協議層和tcp協議層之間,用於建立使用者與伺服器之間的加密通訊,確保所傳遞資訊的安全性,同時ssl安全機制是依靠數字證書來實現的。

ssl基於公用金鑰和私人金鑰,使用者使用公用金鑰來加密資料,但解密資料必須使用相應的私人金鑰。使用ssl安全機制的通訊過程如下:使用者與iis伺服器建立連線後,伺服器會把數字證書與公用金鑰傳送給使用者,使用者端生成會話金鑰,並用公共金鑰對會話金鑰進行加密,然後傳遞給伺服器,伺服器端用私人金鑰進行解密,這樣,使用者端和伺服器端就建立了一條安全通道,只有ssl允許的使用者才能與iis伺服器進行通訊。

ssl**不同於一般的web站點,它使用的是「https」協議,而不是普通的「http」協議。因此它的url(統一資源定位器)格式為「https://**網域名稱」。

實現步驟以後更新。

保證WebService的安全

給第三方做了個webservice,因為都是內部系統沒有用到什麼身份驗證,今晚突發奇想,翻書看了一下,有幾個個人認為不是很好的方法,現在展示出來,只求拋磚引玉 通過soapheader來增強webservice的安全性 通過soapheader可以讓具有指定使用者口令的使用者來訪問自己的webser...

質量如何保證

讀書主要是為了緩解非利益既得者的焦慮,有人懂嗎?之前對於質量的把控,主要是從 層面,從實現機制 業務邏輯 編碼規範等方面去用功,直到最近才忽然想到這可能是個謬論,只關注了乙個孤立的體系,說是閉門造車也不為過。傳統的生產製造領域早就有qc和qa,而對於像我們這種經歷的網際網路創業人員團隊,對於這一塊是...

PHP如何呼叫webservice

最近工作中需要用php呼叫web service介面,對php不熟,上網搜搜,發現關於用php呼叫web service的文章也不多,不少還是php4裡用nusoap這個模組呼叫的方法,其實php5裡已經包含了處理soap的模組,但是資料太少了,上php官網上查幫助,寫的不是很容易理解,經過多次實踐...