❶ nginx配置,Nginx配置了basic認證就不能自動索引index文件什麼問題,求指點。
conf/htpasswd 這個文件存在么?
❷ php無法認證登陸 $_SERVER['PHP_AUTH_USER']
密碼都是MD5方式處理過的,改為if(isset($user) && isset($pass) && $user=='admin' && $pass==md5(mike520))
❸ 如何讓post通過basic認證
Tomcat配置: 1 在tomcat的webapps下新建一個目錄authen,再建立子目錄subdir,下面放一個index.jsp 2 在authen目錄下建立WEB-INF目錄,下放web.xml文件,內容如下 My App /subdir/* test BASIC My Realm
❹ 如何在 url 上 basic 認證
Tomcat配置:
1 在tomcat的webapps下新建一個目錄authen,再建立子目錄subdir,下面放一個index.jsp
2 在authen目錄下建立WEB-INF目錄,下放web.xml文件,內容如下
<security-constraint>
<web-resource-collection>
<web-resource-name>
My App
</web-resource-name>
<url-pattern>/subdir/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>test</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>My Realm</realm-name>
</login-config>
3 在tomcat的tomcat-users.xml文件中添加一個用戶名密碼為test,test的用戶,角色test。
客戶端訪問:
訪問http://localhost:port/authen/subdir/index.jsp
會彈出對話框提示認證,輸入test test可以登錄。
工作流程(通過firebug可以查看請求頭)
1 客戶端先發請求(不知道要認證,頭里不包含任何特殊信息)
2 伺服器發一個401返回,並含有下面的頭
WWW-Authenticate Basic realm="My Realm"
3 客戶端認證,含有下面的頭
Authorization Basic dGVzdDp0ZXN0
「dGVzdDp0ZXN0」是"test:test"的Base64編碼。 (可以通過php函數base64_encode()驗證)
缺點:
密碼明文傳輸,非常不安全。
httpclient中的實現
查看org.apache.commons.httpclient.auth包的BasicScheme類
// Copy from the httpclient source code
// Omit some codes
public static String authenticate(UsernamePasswordCredentials credentials, String charset) {
...
StringBuffer buffer = new StringBuffer();
buffer.append(credentials.getUserName());
buffer.append(":");
buffer.append(credentials.getPassword());
return "Basic " + EncodingUtil.getAsciiString(Base64.encodeBase64(EncodingUtil.getBytes(buffer.toString(), charset)));
}
❺ PHP HTTP 認證實例詳解
HP來實現HTTP的強制認證是十分簡單的,只需簡單的幾行代碼就可以實現,下面我們來看一個例子,然後結合這里例子我向大家詳細介紹一下PHP實現HTTP認證。
<?php
if(!isset($_SERVER['PHP_AUTH_USER']))
{
header('WWW-Authenticate:
Basic
realm="系統名稱"');
header('HTTP/1.0
401
Unauthorized');
echo
'未通過HTTP認證.';
exit;
}
else
{
echo
'認證通過.';
echo
'用戶名:
'.$_SERVER['PHP_AUTH_USER']."\n";
echo
'密碼:
'.$_SERVER['PHP_AUTH_PW']."\n";
}
?>
1.實現說明
怎麼樣,看到上面的代碼了吧,就這么幾行添加到你的程序頁面上就可以實現了.
它是通過利用header()函數向客戶端瀏覽器發送」Authentication
Required」信息,強制其彈出一個用戶名/密碼輸入窗口,當用戶輸入用戶名和密碼後,包含有URL的PHP腳本將會加上預定義變數PHP_AUTH_USER,
PHP_AUTH_PW和AUTH_TYPE然後再次調用,這三個變數分別表示用戶名,密碼和認證類型(從PHP5.0.1起開始支持」Basic」和」Digest」兩種認證方式),它們被保存在$_SERVER(從HP>>4.1.0起有效)或$HTTP_SERVER_VARS(從PHP3起有效)數組中具體應用時,我們可以把驗證的幾行代碼寫成函數,只要判斷到用戶變數不存在或驗證不正確就一直執行該函數並彈出窗口,而且還可以設置錯誤登錄幾次就不允許該用戶訪問,具體的使用大家使勁的發散思考吧.
2.注意事項:
1.這段代碼必須放到程序的開始,且在其開始執行之前不能有任何輸出(若有輸出則需要使用輸出緩沖函數才行).
2.PHP的HTTP認證機制僅在PHP以Apache模塊方式運行時才有效,這個容易理解,它本身是HTTP強制認證,肯定是不適合於CGI版本,不能在命令行下執行的.
3.header發送標頭代碼時請小心.為了對所有的客戶端保證兼容性,關鍵字」Basic」的第一個字母必須大寫為」B」,分界字元串必須用雙引號引用(不能是單引號);在HTTP/1.0和401之間必須有且僅有一個空格.
4.在上面列子中,僅輸出了用戶名和密碼,而在實際系統中則可按照登錄驗證流程進行與資料庫或其他方式進行判斷和驗證.
5.從PHP4.3.0起,為防止有人通過編寫腳本來從頁面上獲取密碼,當外部認證對特定頁面有效,並且安全模式被開啟時,PHP_AUTH變數將不會被設置.可以用REMOTE_USER來辨別外部認證的用戶,用AuthType指令來判斷外部認證機制是否有效.
6.要想讓HTTP認證能夠在IIS下工作,PHP配置選項cgi.rfc2616_headers必須設置為0(默認值).
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
❻ Vista basic PHP網頁打不開
換個瀏覽器試試看
❼ 如何在PHP中進行身份認證
下面這段代碼就可以:
<?
if(!isset($PHP_AUTH_USER))
{
Header("WWW-Authenticate: Basic realm=請輸入你的用戶名和密碼:");
Header("HTTP/1.0 401 Unauthorized");
echo "驗證失敗,你不能網路資源!";
exit;
}
else
{
if ($PHP_AUTH_USER!="username" or $PHP_AUTH_PW!="password")
{
Header("HTTP/1.0 401 Unauthorized");
echo "驗證失敗,你不能網路資源!";
exit;
}
}
?>
❽ 什麼是PHP
PHP比ASP更優秀:
1、速度、速度、速度
當我第一次運行PHP腳本程序時,我不禁對自己說:「太快了」,當時我是在儀態166MHZ的機器上運行我的程序的,但運行的速度仍然很快。
ASP是永遠也不會象PHP這樣快的,因為ASP是建立在COM體系結構之上的。當用VBScript寫ASP腳本時,實際上實在使用COM的對象,當向用戶瀏覽器發送信息時,它用的是Response對象的write方法,當它訪問資料庫和文件系統的時候,它用的是其他的COM對象。這些COM對象的使用使運行速度下降。
在PHP代碼中,所有的工作都運行在PHP的內存空間中,也就是說PHP不是基於COM對象的,所以的他的運行速度會快一些。
下面是我們在MSSQL740次運行一個查詢語句的執行時間統計:
PHP Querying MSSQL7 時間(秒)
用 MSSQL extension 01.88
用 ODBC extension 09.54
用 ODBC via COM (ADO) 17.28
用OLEDB via COM 06.19
當我們使用PHP.ODBC,訪問資料庫用了9.54秒,而用COM介面去連接資料庫需要比PHP所用的時間高80%。
OLEDB是微軟的一種高速訪問資料庫的技術,他比ODBC要快。但當我們所PHP和OLEDB的效率實驗時,結果是PHP的整體性能比OLEDB高200%,如此的出一個結論,如果不採用COM可以獲得較快的執行速度。
當然PHP的執行速度還不是最快的,但我們才剛剛開始起步,我們會逐步的完善他,而且PHP是一種開放源代碼編程語言,世界上許多程序員在不斷的完善他的技術,相信他一定會比非開放源代碼系統獲得更高的執行速度的。
2、高級內存管理
在IIS4下,一個ASP腳本header.asp,如果被20個頁面所包含,那麼運行的時候,在內存當中會保留這20個header.asp的編譯副本,IIS5解決了這個問題,但只有windows2000才支持IIS5,由於這種IIS5的不能向下兼容的原因,許多伺服器仍然要使用IIS4下的低級的內存管理。
而在PHP中,不會存在這種問題,只有當require時,才會調用某個include文件。
3、沒有後顧之憂
我非常憎恨的一件事情就是會買到一件不放心的產品,比如當你買了一輛汽車,但由於發動機是壞的,你需要更換他;當你買了一棟房子的時候,你要去修補漏雨的屋頂。
那麼ASP舊鄉這些產品一樣,當你買了ASP之後,如果你需要加密技術,你就要買ASPEncrypt;當你需要Email管理時,你就要買ServerObjets Qmail;當你需要文件上傳時,你還要買Artisans SA-FileUp.
4、MySQL使PHP更精彩
PHP與MySQL的組合既簡單又精彩。PHP有許多管理和維護MySQL的工具,對MySQk的支持是最全面的。許多有用的函數如mysql_insert_id和mysql_affected_rows等,其他的資料庫則沒有。
ASP和PHP都是中型網站的較理想的解決方案,但PHP與MySQL的緊密結合使PHP更加優越。
MySQL的虛度比Microsoft Access速度快,Mssql和Oracle速度比MySQL要快,可是費用較高。
5、Java和C++的變成風格
這個優點只是一個看法。
我知道你不會相信一個Visual Basic程序員會因為PHP有Java和C++的編程風格而轉向使用PHP,但你會相信有許多人還是喜歡Java和C++的,PHP是一種具有這兩種語言的編程風格的較容易學習的語言。
PHP支持結構化編程,在VB因為他的繼承性使用類還是較少的。而PHP的象Java和C++一樣的繼承性使一個大型的程序中到處都充滿了類的影子。
6、Bug的處理。
你是否曾經要求Microsoft修改ASP的一些Bug呢?如果你不是一個象Boeing一樣的組織,你無法獲得迅速而恰當的修改,把么當你遇到Bug而停止工作時,如果這個Bug不修改,你將無法繼續你的工作的。
PHP,當你發現Bug時,你可以修改他,如果你沒有專家的水平,你可以請專家修改,並且你的修改會得到開放代碼組織的接受和認可。
7、移植性
Microsoft經常修改ASP,下一版本叫ASP+,現在已經開始測試。我相信他們會修改許多我曾經提到過的問題。但也無庸質疑的,Microsoft會將你限制在他們的產品范圍之內的。
我曾經是一個蘋果機的程序員,當windows95問世後,我開始轉變,但許多原來的代碼都無法在windows95下運行,這些代碼現在被放在一邊,我非常的遺憾。所以我不希望在windows下再出現這樣的悲劇。
不要忘記Novell曾經也象Microsoft的網路操作系統一樣熱及一時,但現在已經沒有許多人用了,那麼Microsoft也會這樣的。
我找到了PHP,我仍舊在windows下工作,但我知道PHP代碼可以運行在Solaris、Linux和許多其他的操作系統中,我的心裡感到安慰。
❾ 如何設置Basic認證和IP地址限制訪問
在Apache訪問限制里, 滿足以下的任何一個條件時候,允許用戶訪問該頁面。
所有用戶訪問網站時,需要輸入用戶名和密碼(Basic認證)
客戶端的IP在允許范圍之內時,無需Basic認證就可訪問網站
httpd.conf的配置如下。
AuthUserFile /etc/httpd/conf.d/.zabbix.cc
在這里最重要的是Satisfy,默認值是All,在這里使用Any。All和Any有以下區別。