- Web應(yīng)用安全威脅與防治
- 王文君 李建蒙編著
- 1457字
- 2018-12-26 19:42:31
1.3 URI
URI是Uniform Resource Identifier的簡寫,是一個用于標(biāo)識某一互聯(lián)網(wǎng)資源名稱的字符串。URI允許用戶對互聯(lián)網(wǎng)中的資源通過特定的協(xié)議進(jìn)行交互操作,它包括語法和相關(guān)協(xié)議的定義。下面是幾個RFC 3986上舉的例子,通過這些例子,你可以具體體會一下URI的格式:
ftp://ftp.is.co.za/rfc/rfc1808.txt http://www.ietf.org/rfc/rfc2396.txt ldap://[2001:db8::7]/c=GB?objectClass?one mailto:John.Doe@example.com news:comp.infosystems.www.servers.unix tel:+1-816-555-1212 telnet://192.0.2.16:80/ urn:oasis:names:specification:docbook:dtd:xml:4.1.2
HTTP中的URI能夠表達(dá)為絕對形式或者相對于一些已知的URI的形式,這兩種形式是不同的,絕對URI始終由方案名接著冒號開始。關(guān)于URI語法和語義的定義信息,可以參考RFC 2396,在這里不做詳細(xì)介紹。
HTTP協(xié)議沒有對URI的長度做出任何強(qiáng)制規(guī)定。服務(wù)器必須能夠處理它們服務(wù)的任何資源的URI,且應(yīng)該能夠處理長度極大的URI。如果URI超過服務(wù)器處理的長度,服務(wù)器應(yīng)該返回414(Request-URI too long)狀態(tài)。
1.3.1 URL
統(tǒng)一資源定位符(URL,Uniform / Universal Resource Locator的縮寫)也被稱為網(wǎng)頁地址,如同在網(wǎng)絡(luò)上的門牌,是因特網(wǎng)上標(biāo)準(zhǔn)的資源的地址(Address)。它最初是由蒂姆·伯納斯·李發(fā)明,用來作為萬維網(wǎng)的地址的?,F(xiàn)在它已經(jīng)被萬維網(wǎng)聯(lián)盟編制為因特網(wǎng)標(biāo)準(zhǔn)RFC 1738。URL用來通過HTTP協(xié)議定位網(wǎng)絡(luò)資源。URL的具體格式如下:
協(xié)議://主機(jī)名[:端口號]/路徑/[?查詢]
下面是一個典型的URL:
http://www.example.com/usermgr/userinfo.do?userid=1
http 是協(xié)議,www.example.com是主機(jī)名,端口是80,/usermgr/userinfo.do是路徑,userid=1是查詢。
應(yīng)該盡量避免在URL中使用IP地址(可以參考RFC 1900)。在作為訪問資源的請求URI時,如果URL中不存在絕對路徑,則它必須作為"/"。如果代理收到的主機(jī)名不是完整的描述的域名,則它可以增加它的域名到收到的主機(jī)名中。如果代理收到的是完整資源域名,則代理禁止修改主機(jī)名。
1.3.2 URI/URL/URN
可能通過以上簡單的介紹,你會對URI/URL/URN的區(qū)別仍然不是很清楚。RFC 3986中關(guān)于三者的一段介紹如下:
A URI can be further classified as a locator, a name, or both. Theterm "Uniform Resource Locator" (URL) refers to the subset of URIs that, in addition to identifying a resource, provide a means oflocating the resource by describing its primary access mechanism(e.g., its network "location"). The term "Uniform Resource Name"(URN) has been used historically to refer to both URIs under the "urn" scheme [RFC2141], which are required to remain globally unique and persistent even when the resource ceases to exist or becomes unavailable, and to any other URI with the properties of a name.
An individual scheme does not have to be classified as being just one of "name" or"locator". Instances of URIs from any given scheme may have the characteristics of names or locators or both, often depending on the persistence and care in the assignment of identifiers by the naming authority, rather than on any quality of the scheme. Future specifications and related documentation should use the general term "URI" rather than the more restrictive terms "URL" and "URN" [RFC3305].
通過這段介紹我們可以得知:URI可被視為定位符(URL)、名稱(URN)或兩者兼?zhèn)?。統(tǒng)一資源名(URN)如同一個人的名稱,而統(tǒng)一資源定位符(URL)代表一個人的住址。換言之,URN定義某事物的身份,而URL提供查找該事物的方法。
維基百科也對URI和URL以及URN做出了解釋:URI是標(biāo)識一個互聯(lián)網(wǎng)資源,并指定對其進(jìn)行操作或取得該資源的方法的URL,可能通過對主要訪問手段的描述,也可能通過網(wǎng)絡(luò)“位置”進(jìn)行標(biāo)識。例如,http://www.wikipedia.org/這個URL,標(biāo)識一個特定資源(首頁)并表示該資源的某種形式(例如,以編碼字符表示的,首頁的HTML代碼)是可以通過HTTP協(xié)議從www.wikipedia.org這個網(wǎng)絡(luò)主機(jī)獲得的。URN是基于某命名空間通過名稱指定資源的URI。人們可以通過URN來指出某個資源,而無須指出其位置和獲得方式。資源無須是基于互聯(lián)網(wǎng)的。例如,URN urn:isbn:0-395-36341-1 指定標(biāo)識系統(tǒng)(即國際標(biāo)準(zhǔn)書號ISBN)和某資源在該系統(tǒng)中的唯一表示的URI。它可以允許人們在不指出其位置和獲得方式的情況下談?wù)撨@本書。
可見,URL和URN都是URI的子集。不過,在平時的工作和生活中用的最多的是URL,也就是把URI和URL看做是一個事物。如果你還有興趣進(jìn)一步仔細(xì)區(qū)分三者的話,可以參考RFC 3305,這個標(biāo)準(zhǔn)里描述了三者的具體關(guān)系。
1.3.3 URI比較
當(dāng)通過比較兩個URI來判斷它們是否匹配時,客戶端應(yīng)該對整個URI使用大小寫敏感的字節(jié)對字節(jié)進(jìn)行比較,除了以下例外:
· 空或者沒有給出的端口號與該URI使用的默認(rèn)端口號相同。
· 比較主機(jī)名必須是大小寫不敏感的。
· 比較方案名必須是大小寫不敏感的。
· 空絕對路徑與絕對路徑“/”相同。
不在“保留”和“不安全”字符集中的字符與其URL編碼相同。例如,下面三個URI是相同的:
http://example.com:80/~smith/home.html
http://example.com/%7Esmith/home.html
http://example.com:80/%7esmith/home.html
- INSTANT Metasploit Starter
- Web安全與攻防入門很輕松(實(shí)戰(zhàn)超值版)
- API攻防:Web API安全指南
- 軟件開發(fā)安全之道:概念、設(shè)計(jì)與實(shí)施
- 網(wǎng)絡(luò)安全三十六計(jì):人人該懂的防黑客技巧
- 硬黑客:智能硬件生死之戰(zhàn)
- 計(jì)算機(jī)網(wǎng)絡(luò)安全技術(shù)研究
- 黑客攻防與網(wǎng)絡(luò)安全從新手到高手(絕招篇)
- 計(jì)算機(jī)網(wǎng)絡(luò)安全基礎(chǔ)(第5版)
- Advanced Penetration Testing for Highly:Secured Environments(Second Edition)
- 網(wǎng)絡(luò)安全大數(shù)據(jù)分析與實(shí)戰(zhàn)
- 功能型密碼算法設(shè)計(jì)與分析
- 網(wǎng)絡(luò)空間安全法律問題研究
- Practical Internet of Things Security
- 網(wǎng)絡(luò)入侵檢測系統(tǒng)原理與應(yīng)用