1. 程式人生 > >Web開發中特殊字元的轉義

Web開發中特殊字元的轉義

<input name="name1" id="id1" value='XXX'> 這裡首先澄清一點,HTML裡面沒有反斜槓'/'轉義符這一說,不要在HTML裡把/當作轉義符。如果在HTML出現你覺得象是轉義符的"/",那麼它也許是為其它後續的文字處理埋下伏筆的。 如果想讓這"XXX"裡支援任何的文字而不產生頁面錯誤,基本上需要處理以下幾個特殊字元的轉義: 1. " 雙引號 " -> &#34; 2. ' 單引號 ' -> &#39; 3. & AND & -> &amp; 4. < 小於號 < -> &lt; 5. > 大於號 > -> &gt; 在value=""這種格式裡面,雙引號是必須轉義的,單引號可不轉; 在value=''這種形式裡面,單引號是必須轉義的,雙引號可不轉;當然為了萬全之策,兩個一起轉吧。 第三個"&"在普通的時候不會出問題,但在&nbsp;&lt;等連續出現的時候,就會出現顯示問題。所以,為防萬一這個"&"是必須轉義的。 第四個和第五個我暫時沒有發現有轉義的必要,但是一個同事說不轉可能會出事,那麼就一起轉吧。 二,Javascript裡, 也來一句典型的。 var str = "XXX";或 var str = 'XXX'; 首先澄清一點,Javascript裡面沒有“”是弱引用,''是強引用這一說法。""與''對字串的引用都是一樣的,不同的只是定界符。 但是,'/'反斜槓在Javascript是特殊字元的轉義符。 Javascript裡面,以下的幾個字元需要注意: 1. " 雙引號 " -> /" 2. ' 單引號 ' -> /' 3. / 反斜框 / -> // 在"(雙引號)作為定界符時,'其實是可以不轉義的;相反當'(單引號)作為定界符時,"也是可以不轉義的;但是為了廣義的相容,我們把兩個一起轉義。同樣,/(反斜槓)無論在哪種定界符時都需要轉義。 三,PHP PHP裡面,首先說一下,""是弱引用,''為強引用。這一點跟bash下很相似。 然後,PHP裡面也支援/(反斜槓)作為轉義符。 關於以上兩點一般我們都會注意,我想說的是以下這一點,關於表單提交過後的內容的自動轉義形為。 下面是一句典型的表單內容提取的語句: $name = $_POST['name']; 有時候我們會發現明明表單提交過來的是////
,而收到的卻是////////。這是因為PHP裡面的magic quotes gpc打開了,這樣,GET、POST或COOKIE過來的'(單引號),"(雙引號)和/(反斜槓)都會被自動轉義,這三個字元的前面都會被自動加上/(反斜槓作為轉義符)。正因為如此,使得你無論如何都不可能提交過來單數個/(反斜框)。:) int get_magic_quotes_gpc ( void )方法可以取到這個轉換開關的狀態,預設情況下,PHP是開啟這個開關的。 以下兩個函式分別是為字串加上轉義符和為字串去掉轉義符: string addslashes ( string str) string stripslashes ( string str) 在加上或去掉之前,請儘量先判斷一下PHP是否已經自動對提交過來的資料轉義過。 PHP裡需要注意的特殊字元有: 1. " 雙引號 " -> /" 2. ' 單引號 ' -> /' 3. / 反斜框 / -> // 四,bash下面 有時候,我們在PHP裡面有這樣的命令呼叫方式: $result = `/usr/local/bin/command "$parameter"`; 關於bash下特殊字元的轉義,改天再用另一篇文章專門來寫,這個算起來已經比較複雜了。簡單的講,在""形式的弱引用下,需要注意的字元有如下五個: 1. $(美元符),單個的美元符並不能作什麼,但連線字母或數字或符號就成了變數的引用 2. `(back quote),這個是命令包含的起始符 3. /(反斜槓),這個是轉義符 4. "(雙引號), 5. !(感嘆號) 在''強引用形式下,不需要做任何的轉義,''(單引號)內的所有字元都將保留原樣。這一點是比較明瞭的。 下面幾個例子,如果能夠完全肯定的說出他們輸出什麼,你也就瞭解了很多轉義的奧妙了。值得提起注意的是在呼叫awk和sed進行二次處理的時候,還有二次轉義等一些令人匪夷所思的現象發生。如果不多加註意將會產生一些意想不到的錯誤。 1. 如下: a=$b echo $a a="$b" echo $a a='$b" echo $a 2. 如下: a=/`/!/$/%/^/& echo $a echo "$a" a="/`/!/$/%/^/&" echo $a echo "$a" a='/`/!/$/%/^/&' echo $a echo "$a" 3. 如下: b=$a echo $b c=$b echo $c d=$c echo $d e=$d echo $e b="$a" echo "$b" c="$b" echo $c d="$c" echo $d e="$d" echo $e 4. 如下: echo "" | awk -v pass=$pass '{ print pass }' echo "" | awk -v pass="$pass" '{ print pass }' echo "" | awk -v pass='$pass' '{ print pass }' echo "" | awk -v pass=$pass '{ print pass }' echo "" | awk -v pass="$pass" '{ print pass }' echo "" | awk -v pass='$pass' '{ print pass }' 5. 如下: a="/$/&*()" echo "saaab" | sed "s/aa/$a/" a="/$&*()" echo "saaab" | sed "s/aa/$a/" 這裡,我很多都寫的是對比例子。如果我沒有寫出對比例子,有些情況對經驗不是很豐富的我們來講是很難考慮到的。

相關推薦

Web開發特殊字元轉義

<input name="name1" id="id1" value='XXX'> 這裡首先澄清一點,HTML裡面沒有反斜槓'/'轉義符這一說,不要在HTML裡把/當作轉義符。如果在HTML出現你覺得象是轉義符的"/",那麼它也許是為其它後續的文字處理埋下伏筆的。 如果想讓這"XXX"裡支援任何

web開發特殊字元的對應值與轉義字元

URL中的特殊字元 URL中的特殊字元是不能再URL中直接傳遞的,需要進行編碼。編碼的格式為:%加字元的ASCII碼,即一個百分號%,後面跟對應字元的ASCII(16進位制)碼值。 字元 名稱 16進位制值 + URL中的+表示空格 %2B 空格 URL

xml檔案特殊字元轉義

在使用mybatis/ibatis寫sql時總是忘記特殊轉義表示,在此記錄 左邊為xml特殊符號,右邊是轉義 <     &lt;>     &gt;&   &

網址URL特殊字元轉義

字元  URL編碼 空格   %20 &        %26 %       %25 :         %3A |         %7C 分析: %253A == %3A == : %257C == % 7C == | %2520 == %20 == 空格

Markdown特殊字元轉義字元

上次在用Markdown記筆記時,當正文中寫到<PROJECT>_<PATH>_<FILE>_H_時,<>裡的內容顯示顯示不出來,就算用' '也顯示不出來。後想起Markdown支援html語法,這樣的寫法(<>或<\>)與html語法衝

CSS 選擇器特殊字元轉義

function escapeJquery(srcString) { // 轉義之後的結果 var escapseResult = srcString; // javascript正則表示式中的特殊字元 va

url特殊字元轉義成編碼後如何處理

開發時有時服務端返回的json中包含url,url中可能含有一些特殊字元,這些特殊字元在傳輸的過程中可能會被轉義成編碼。這時候我們拿到手裡要如何轉換回去呢,先看下那些字元可能會被編碼 例: String url = "http://www.baidu.c

將字串的正則特殊字元轉義

key = u'+86XXXXXX'key要作為pattern,裡面包含正則特殊字元,導致目標串查詢失敗,需要將+轉義,也就是變成\+key_pattern = re.sub(ur'([.$^{[(|)*+?\\])', ur'\\\1', key)完成

Web.Config 特殊字元轉義

 Web.Config預設編碼格式為UTF-8,對於XML檔案,要用到實體轉義碼來替換。對應關係如下: 字元 轉義碼 & 符號 & &amp; 單引號 ' &apos; 雙引號 " &quot; 大於 > &gt;

Oracle 特殊字元 & 的轉義

一條語句: select ascii('&') from dual; 輸出: ASCII('&') 38 又一條語句: select chr(38) from dual; 又輸出: CHR(38) & 所以,就把“&”替換成“chr

將正則表示式特殊字元轉義

/** * @title * @description 替換正則表示式中的所有特殊字元 * @author HUAZAI * @param * <ul> *

如何讓在Html特殊字元不被轉義(如 等)

問題: <textarea></textarea>之間包含有類似的這種轉義字元的時候總會被解析,倒是可以把所有的"&"通過程式替換成"&amp;",但是有些本來就是"&"的也會被轉換,這就錯了。如何讓<textarea&g

移動web開發屏幕適配問題

設置 應該 相對 用戶 默認 min 等於 滾動 imu 1、首先屏幕的尺寸就是屏幕對角線的長度 尺寸是固定的 2、開發中遇到的單位 相對單位(即相對於屏幕):px em pt 絕對單位(固定的大小,與設備屏幕無關):in cm 3、像素密度 像素

WEB開發常見的漏洞

需要 提交 源代碼 包頭 紀念日 正常 漏洞 發生 裏的 一、SQL註入漏洞 SQL註入攻擊(SQL Injection),簡稱註入攻擊、SQL註入,被廣泛用於非法獲取網站控制權,是發生在應用程序的數據庫層上的安全漏洞。在設計程序,忽略了對輸入字符串中夾帶的SQL指令的檢查

Java Web開發Spring+MyBatis框架的簡單搭建

jar包 簡單的 .class pre web項目 指定 clip 開發 location 這裏使用的eclipse,首先創建一個動態web項目。 1、導入Spring IOC、AOP、DAO、dbcp、dbdrive、mybatis.jar 、 mybatis-s

【安全牛學習筆記】Web開發的涉及到的權限問題

信息安全 web security+ Web開發中的涉及到的權限問題1.常見的觸發場景2.漏洞原理3.漏洞危害4.如何避免&修復漏洞-------------------------------------------------------------------------------

Web 開發 20 個很有用的 CSS 庫

base.css 最新 prot 背景 data 按鍵 前綴 單行 尺寸 Web 開發中 20 個很有用的 CSS 庫 在過去的幾年中,CSS已經成為一大部分開發者和設計者的最愛,因為它提供了一系列功能和特性。每個月都有無數個圍繞CSS的工具被開發

Spring在web開發的應用

ica ati spring 配置 還需要 erl 常量 tlist web.xml list (1)在 web 項目中要使用 spring 需要導入一個 jar 包: spring-web-4.2.4.jar包 (2)在 web.xml 文件中配置 Listener 1

Web開發Listener、Filter、Servlet的初始化及調用

children tomcat啟動 什麽 lis exceptio try 部分 OS findchild 我們在使用Spring+SpringMVC開發項目中,web.xml中一般的配置如下: 1 <?xml version="1.0" encoding=

Web開發常用文字體名稱的英文對應

字體 HTML CSS 說明: 加上中文名“微軟雅黑”是為了兼容opera。 MicrosoftJhengHei為微軟正黑體,STHeiti為華文黑體,MingLiu記得11px下的中文有著不凡的效果。 在css中推薦使用中文字體的英文表示法,以下附常見中文字體的英文名: Mac OS: 華文細黑