在我的Web安全學習的開始需要對ASP的代碼有一定的熟悉程度但是在查看源碼的時候經常性的看到雙引號,單引號以及&號.並且對他們的用法經常產生疑惑的地方,這里是我搜集的一些理解和感悟,以期對ASP的學習有所幫助~
一.雙引號""
ASP中處在雙引號中的可以是任意的字符,字符串,HTML代碼.
比如 <%response.write("cnbruce here")%><hr>
<%response.write("<b>cnbruece here</b>")%>
產生的結果分別是:默認字體和加粗文字“cnbruce here”
下面深入一點如果我要在輸出的頁面文字上加一點顏色效果怎么辦呢?
1.一般文字顏色這樣寫:<font color="#0000ff"></font>
2.response.write寫法是這樣的:response.write("輸入顯示內容")
3.如果將上述的1和2放在一起的話,兩對雙引號勢必會形成嵌套
4.調試結果不容樂觀,因為color的前引號和write的前引號形成匹配,內容為<font color=;同樣color的后引號也就和write的后引號匹配了,內容為:>cnbruce</font>。最終結果是:中間的 #0000ff 被孤單了。
5.所以為了結果正確,你可以將 #0000ff 當成字符串放在雙引號里面,然后該字符串與前字符串<font color=和后字符串>cnbruce</font>中間的連接就采用&號
最后結果如下:
<%response.write("<font color=" &" #0000ff" & ">cnbruce</font>")%>
二.單引號''
正如我們學習語文所理解的一樣,繼續放在雙引號當中的引號可以采用單引號。
對於上述的描述我們也可以將雙引號變成單引號來進行改寫:
response.write("<font color="#0000ff">cnbruce</font>")
中的#0000ff就可以將其雙引號變為單引號:
response.write("<font color='#0000ff'>cnbruce</font>"),這樣執行同樣正確。
三.連接字符&號
在ASP中&符號是用來來進行連接的,包括字符串-字符串,字符串-變量,變量-變量等混合連接
例如:
<%
mycolor="#0000ff" response.write("<font color=' "&mycolor&" '>"&"cnbruce"&"</font>")
%>
總結完這些以后我們來看一些值得注意的地方:
上面的那個語句里面在單引號里面有引用了雙引號,那么是不是跟上面我們所說的雙引號里面可以放單引號而有所模糊了呢其實不是的,我們繼續看
1.我們自己定義了一個變量mycolor,按照原則變量放在response.write里面是不需要加雙引號的
加了雙引號就表示字符串而非變量了
2.所以response.write如果要輸出變量可以直接寫成:response.write(mycolor)
3.但是如果我們的變量一定要放在雙引號里面怎么辦呢
4.這個時候我們就有了這種關鍵的寫法:將ASP變量繼續添加左右的“&符號,就可以放在雙引號里面了
例子是:response.write(" "&mycolor&" ")其實其內在就是一前一個空字符串連接mycolor變量
在后面連接一個字符串而已。
最后再給出一個終極例子以作結尾:
<%
mycolor="#0000ff"
response.write("<font color=' "&mycolor&" '> " & mycolor &"</font>")
這句話包含了字符創,變量以及變量在雙引號里面的應用。
%>