http認證
2. 點擊「區域網設置」按鈕,彈出如下對話框
3. 在上圖中的代理伺服器欄中選中「為 LAN 使用代理伺服器」選項,並在「地址」和「埠」欄中分別輸入代理伺服器的地址和埠。設置完成最後按「確定」按鈕即可。
㈡ 如何使用HttpClient認證機制
1.伺服器認證(Server Authentication)
HttpClient處理伺服器認證幾乎是透明的,僅需要開發人員提供登錄信息(login
credentials)。登錄信息保存在HttpState類的實例中,可以通過 setCredentials(String realm,
Credentials cred)和getCredentials(String realm)來獲取或設置。
HttpClient內建的自動認證,可以通過HttpMethod類的setDoAuthentication(boolean doAuthentication)方法關閉,而且這次關閉隻影響HttpMethod當前的實例。
1.1搶先認證(Preemptive Authentication)
在這種模式時,HttpClient會主動將basic認證應答信息傳給伺服器,即使在某種情況下伺服器可能返回認證失敗的應答,這樣做主要是為了減少連接的建立。使用該機制如下所示:
client.getParams().setAuthenticationPreemptive(true);
搶先認證模式也提供對於特定目標或代理的預設認證。如果沒有提供預設的認證信息,則該模式會失效。
Credentials defaultcreds = new UsernamePasswordCredentials("username", "password");
client.getState().setCredentials(new AuthScope("myhost", 80, AuthScope.ANY_REALM), defaultcreds);
Httpclient實現的搶先認證遵循rfc2617.
A
client SHOULD assume that all paths at or deeper than the depth of the
last symbolic element in the path field of the Request-URI also are
within the protection space specified by the Basic realm value of the
current challenge. A client MAY preemptively send the corresponding
Authorization header with requests for resources in that space without
receipt of another challenge from the server. Similarly, when a client
sends a request to a proxy, it may reuse a userid and password in the
Proxy-Authorization header field without receiving another challenge
from the proxy server.
1.2伺服器認證的安全方面考慮
當需要與不被信任的站點或web應用通信時,應該謹慎使用預設的認證機制。當啟動(activate)搶先認證模式,或者認證中沒有明確給出認證域,主機的HttpClient將使用預設的認證機制去試圖獲得目標站點的授權。
如果你提供的認證信息是敏感的,你應該指定認證域。不推薦將認證域指定為AuthScope.ANY。(只有在debugging情況下,才使用)
// To be avoided unless in debug mode
Credentials defaultcreds = new UsernamePasswordCredentials("username", "password");
client.getState().setCredentials(AuthScope.ANY, defaultcreds);
2.代理認證(proxy authentication)
除了登錄信息需單獨存放以外,代理認證與伺服器認證幾乎一致。用 setProxyCredentials(String realm, Credentials cred)和 getProxyCredentials(String realm)設、取登錄信息。
3.認證方案(authentication schemes)
3.1Basic
是HTTP中規定最早的也是最兼容的方案,遺憾的是也是最不安全的一個方案,因為它以明碼傳送用戶名和密碼。它要求一個UsernamePasswordCredentials實例,可以指定伺服器端的訪問空間或採用默認的登錄信息。
3.2 Digest
是在HTTP1.1 中增加的一個方案,雖然不如Basic得到的軟體支持多,但還是有廣泛的使用。Digest方案比Basic方案安全得多,因它根本就不通過網路傳送實際的密碼,傳送的是利用這個密碼對從伺服器傳來的一個隨機數(nonce)的加密串。
它要求一個UsernamePasswordCredentials實例,可以指定伺服器端的訪問空間或採用默認的登錄信息。
3.3 NTLM
這是HttpClient支持的最復雜的認證協議。它Microsoft設計的一個私有協議,沒有公開的規范說明。一開始由於設計的缺陷,NTLM的安全性比 Digest差,後來經過一個ServicePack補丁後,安全性則比較Digest高。
NTLM需要一個NTCredentials實例。
注意,由於NTLM不使用訪問空間(realms)的概念,HttpClient利用伺服器的域名作訪問空間的名字。還需要注意,提供給
NTCredentials的用戶名,不要用域名的前綴 - 如: "adrian" 是正確的,而 "DOMAIN\adrian" 則是錯的。
NTLM認證的工作機制與basic和digest有很大的差別。這些差別一般由HttpClient處理,但理解這些差別有助避免在使用NTLM認證時出現錯誤。
[1] 從HttpClientAPI的角度來看,NTLM與其它認證方式一樣的工作,差別是需要提供'NTCredentials'實例而不是'UsernamePasswordCredentials'(其實,前者只是擴展了後者)
[2] 對NTLM認證,訪問空間是連接到的機器的域名,這對多域名主機會有一些麻煩。只有HttpClient連接中指定的域名才是認證用的域名。建議將realm設為null以使用默認的設置。
[3]
NTLM只是認證了一個連接而不是一請求,所以每當一個新的連接建立就要進行一次認證,且在認證的過程中保持連接是非常重要的。
因此,NTLM不能同時用於代理認證和伺服器認證,也不能用於HTTP1.0連接或伺服器不支持持久連接(keep-alives)的情況。
㈢ 站點登錄和HTTP身份驗證之間的區別
1、基於表單的認證是最常用的認證形式。它是在web應用中實現的認證類型,可以從目回標的「站點登錄」部答分在Acunetix中配置此類型的身份驗證。
2、另一方面,HTTP認證在Web伺服器中配置,並且通常用作增加的安全級別。驗證窗口在載入任何頁面之前顯示,並且如屏幕截圖中所示。 不同的瀏覽器以不同的方式顯示此消息。
3、Acunetix也支持HTTP身份驗證,可以從目標的設置> HTTP選項卡> HTTP身份驗證進行配置。
㈣ https、http的區別,域名、證書怎麼弄
域名、證書直接向域名商來進行申請,https、http區別如下:
一、主體不同
1、https:是以安全為目標的 HTTP 通道,在HTTP的基礎上通過傳輸加密和身份認證保證了傳輸過程的安全性。
2、http:是一個簡單的請求-響應協議,通常運行在TCP之上。
二、特點不同
1、https:HTTPS 在HTTP 的基礎下加入SSL層,HTTPS 的安全基礎是 SSL,因此加密的詳細內容就需要 SSL。
2、http:指定了客戶端可能發送給伺服器什麼樣的消息以及得到什麼樣的響應。請求和響應消息的頭以ASCII碼形式給出;而消息內容則具有一個類似MIME的格式。
三、作用不同
1、https:存在不同於 HTTP 的默認埠及一個加密/身份驗證層。這個系統提供了身份驗證與加密通訊方法。被廣泛用於萬維網上安全敏感的通訊,例如交易支付等方面
2、http:主要是應用於WEB端內容獲取。
㈤ win7搭建http伺服器需要進行身份驗證
你是使用什麼HTTP伺服器軟體搭建了一台什麼樣的伺服器?HTTP伺服器能搭建的環境太多了,能搭建的服務類型更多,那種第三方的服務可以用無數來形容,隨便寫幾句話就是個HTTP伺服器,所以說你要說清楚類型,這種事情就跟你說裝了個win7系統,安裝了個軟體不好使有什麼區別?
㈥ 請教http摘要認證客戶端的Java實現
HttpURLConnection hc = null;
try
{
hc = (HttpURLConnection) new URL(url).openConnection();
hc.setConnectTimeout(10000);
hc.setReadTimeout(10000);
hc.setDoInput(true);
hc.setDoOutput(true);
hc.setUseCaches(false);
String content = param;
DataOutputStream out = new DataOutputStream(hc.getOutputStream());
out.writeBytes(content);
out.flush();
out.close();
//從hc中取出sessionId
for (int i = 1; (key = hc.getHeaderFieldKey(i)) != null; i++)
{
if (key.equalsIgnoreCase("Set-Cookie"))
{
sessionId = hc.getHeaderField(key);
sessionId = sessionId.substring(0, sessionId.indexOf(";"));
break;
}
}
BufferedReader reader = new BufferedReader(
new InputStreamReader(hc.getInputStream()));
String lines;
while ((lines = reader.readLine()) != null)
{
break;
}
reader.close();
catch (Exception e)
{
//
//e.printStackTrace();
return false;
}
finally
{
// 斷開連接
hc.disconnect();
}
㈦ 如何使用HttpClient認證機制
由於HttpClient內置支持HTTPBasic認證方式,因而使用HttpClient通過HTTPBasic認證的步驟顯得較為簡單。
1.為HttpClient的狀態對象添加用戶名/密碼對。可以注意到在setCredentials方法中的另一個參數為AuthScope對象。事實上我們添加的每個用戶名/密碼對都與一個AuthScope對象相關聯。AuthScope對象確定了此用戶名/密碼對的適用站點,在示例中所給出的用戶名/密碼對將只適用於www.sample.com位於80埠上的資源。HttpClient在與其他站點交互時將不會使用此用戶名/密碼對,這樣有效地防止了機密數據被傳送至不必要的站點。
2.開啟HttpClient提供的佔先式(Preemptive)認證功能。開啟了這個功能後,HttpClient對於那些處在之前請求過的URI空間范圍內的資源,會主動地隨請求一起向伺服器發送Basic認證數據,而不是等待伺服器返回是否需要認證的響應後再提交認證。在多數情況下,能夠減少請求-響應傳遞的次數,從而間接提高了伺服器的響應能力。值得注意的是在這種情況下必須在AuthScope對象中明確指定適用站點,以避免向不相關的站點泄漏敏感數據。3.創建GetMethod對象,此對象將使用GET方式對保護資源發出HTTP請求。
4.setDoAuthentication(true)語句將告知HttpClient在伺服器端發回需要認證的請求後,自動將我們在步驟1中設置的用戶名/密碼對發送至伺服器,以完成認證過程。
5.執行GET請求,獲取和處理受保護資源的內容。
㈧ 如何實現curl 的http基礎認證
桌面應用程序也通過HTTP協議跟Web伺服器交互, 桌面應用程序一般不會使用cookie, 而是把 "用戶名+冒號+密碼"用BASE64演算法加密後的字元串放在http request 中的header Authorization中發送給服務端, 這種方式叫HTTP基本認證(Basic Authentication)
當瀏覽器訪問使用基本認證的網站的時候, 瀏覽器會提示你輸入用戶名和密碼
㈨ 使用http動詞篡改的認證旁路
第一種辦法:在/opt/IBM/HTTPServer/conf 下的httpd.conf也就是apache的配置文件.加上如下代碼
<Location />
<LimitExcept GET POST HEAD CONNECT OPTIONS>
Order Allow,Deny
Deny from all
</LimitExcept>
</Location>
LimitExcept 後面寫的是允許經過的http方法,我這邊是was8.5默認的put和delete、trace方法是禁止的,head方法好像默認不禁止,你在這里寫上LimitExcept GET POST
只允許post和get方法也沒用,head照樣可以走,我猜想是在was8.5本身默認禁止和不禁止的配置上加這些代碼的吧。
第二種方法:在程序中加過濾器,我是Struts1 ,針對每一個請求都加上過濾器,使用request.getMethod方法判斷,除了get,post , head,connect ,options之外的方法都直接return就行了,如下所示。
if(method.equalsIgnoreCase("post")||method.equalsIgnoreCase("get")||method.equalsIgnoreCase("head")
||method.equalsIgnoreCase("trace")||method.equalsIgnoreCase("connect")||method.equalsIgnoreCase("options")){
}
㈩ 電腦老是提示http代理認證是什麼意思
你不要使用代理伺服器就好了
在菜單欄工具裡面有個代理伺服器一項,裡面有三個,選「不使用代理伺服器」