web編碼相關(guān)問(wèn)題

編碼相關(guān)

對(duì)工作中遇到相關(guān)的編碼問(wèn)題的一個(gè)總結(jié)。

編碼出現(xiàn)的環(huán)境

  1. 直接顯示在頁(yè)面
  2. 在script 標(biāo)簽中
  3. 在頁(yè)面事件中
  4. 在innerHTML 的語(yǔ)境
  5. 在頁(yè)面鏈接的url中
  6. 提交url參數(shù)處理
  7. js 獲取url參數(shù)值的時(shí)候

處理辦法

1.對(duì)于要顯示在頁(yè)面中的數(shù)據(jù),這個(gè)時(shí)候要防止標(biāo)簽的自閉合,以及屬性中單引號(hào)和雙引號(hào)。

  • "<" ---> "&lt";
  • ">" ---> "&gt";
  • ' ---> &quot;
  • " ---> &#39;

2.在JavaScript中單引號(hào)和雙引號(hào)中都是表示字符串,并沒(méi)有什么區(qū)別。

  • ' ---> '
  • " ---> "
  • \ ---> \
  • / ---> /

3.在頁(yè)面事件中、在innerhtml的語(yǔ)境中。

這類語(yǔ)境涉及到了頁(yè)面html和js環(huán)境,先進(jìn)行js轉(zhuǎn)義,然后再進(jìn)行html轉(zhuǎn)義。

4.頁(yè)面url中

這類比較復(fù)雜,url中本身涉及到很多的特殊字符,此外也會(huì)涉及到html 和js 環(huán)境中的賦值的情況,
特別注意,url 編碼和html的編碼是不一樣的,見(jiàn)后文附錄url編碼表和html編碼表

  1. 在html 和js環(huán)境中,需要轉(zhuǎn)義的字符為: ” ,' ,<,>,\ ,/
  2. 在其他環(huán)境中,需要轉(zhuǎn)義的字符為:+,空格,?,=,&,#, %

這類字符的轉(zhuǎn)義如下:

  • ” ---> %22;

  • ' ---> %22;

  • < ---> %3C

  • ">" ---> %3E

  • \ ---> %5C

  • / ---> %2F

  • "+" ---> %2b

  • 空格 ---> %20

  • ? ---> %3F

  • = ---> %3D

  • & ---> %26

  • "#" ---> 23

  • "%" ---> %25

  • 提交url 參數(shù)的處理:

  • Form表單提交方式:
    不需要做任何處理,表單會(huì)依照頁(yè)面的編碼進(jìn)行編碼
  • ajax的提交:
    因?yàn)閍jax的提交的時(shí)候,是拼接成url的方式提交給后端的,所以必須要考慮對(duì) +,空格,?,=,&,#, % 的轉(zhuǎn)義,通常使用 encodeURIComponent進(jìn)行轉(zhuǎn)義
  1. js 獲取url參數(shù)的值的時(shí)候
  • 得到url中的參數(shù)值的時(shí)候,首先必須要進(jìn)行decodeURIComponent的轉(zhuǎn)碼才能使用,因?yàn)閡rl中的一些特殊字符都經(jīng)過(guò)了編碼
  • 將url的值設(shè)置到一些參數(shù)上時(shí),比如隱藏表單上的value值的時(shí)候(作提交refer),需要進(jìn)行encodeURIComponent 編碼
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 之前積累了XSS 有一段時(shí)間,因?yàn)槟壳伴_始了一件有趣的工程,需要整合非常多的知識(shí),其中Web 安全這一塊出現(xiàn)最多的...
    刀背藏身閱讀 9,563評(píng)論 0 16
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,641評(píng)論 19 139
  • 高三,周四的語(yǔ)文晚自習(xí)。老師對(duì)我們寬容有加,于是經(jīng)常翹課。當(dāng)然,我們還是有下限的,比如我們不會(huì)用這段時(shí)間去網(wǎng)吧。也...
    豌豆夫人Olia閱讀 421評(píng)論 0 0
  • 人體與外界接觸有三大防線:皮膚、胃腸黏膜和呼吸道黏膜。這三者中,呼吸道這道防線,特別是肺,更容易與外界接觸、受細(xì)菌...
    云中飛雁008閱讀 407評(píng)論 0 0
  • 浴室柜的面材可分為天然石材、玉石、人造石材、防火板、烤漆、玻璃、金屬和實(shí)木等;基材是浴室柜的主體,它被面材所掩飾。...
    小程序開發(fā)剛子哥閱讀 981評(píng)論 0 0

友情鏈接更多精彩內(nèi)容