日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務,提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

來歷

JSONJavaScript Object Notation,JAVAScript對象表示法)是一種由道格拉斯·克羅克福特構想和設計、輕量級的數(shù)據(jù)交換語言,該語言以易于讓人閱讀的文字為基礎,用來傳輸由屬性值或者序列性的值組成的數(shù)據(jù)對象。盡管JSON是JavaScript的一個子集,但JSON是獨立于語言的文本格式,并且采用了類似于C語言家族的一些習慣。

JSON 數(shù)據(jù)格式與語言無關,脫胎自JavaScript,但當前很多編程語言都支持 JSON 格式數(shù)據(jù)的生成和解析。JSON 的官方 MIME 類型是 Application/json,文件擴展名是 .json。

JSON

你是否真的了解JSON的應用領域,它有哪些安全問題

 

擴展名 .json

互聯(lián)網(wǎng)媒體類型 application/json

類型代碼 TEXT

統(tǒng)一類型標識 public.json

格式類型 數(shù)據(jù)交換

延伸自 JavaScript

標準 RFC 7159, ECMA-404

網(wǎng)站 json.org

簡介

JSON格式是1999年《JavaScript Programming Language, Standard ECMA-262 3rd Edition》的子集合,所以可以在JavaScript以eval()函數(shù)(javascript通過eval()調用解析器)讀入。不過這并不代表JSON無法使用于其他語言,事實上幾乎所有與網(wǎng)頁開發(fā)相關的語言都有JSON函數(shù)庫。

JSON的基本數(shù)據(jù)類型:

  • 數(shù)值:十進制數(shù),不能有前導0,可以為負數(shù),可以有小數(shù)部分。還可以用e或者E表示指數(shù)部分。不能包含非數(shù),如NaN。不區(qū)分整數(shù)與浮點數(shù)。JavaScript用雙精度浮點數(shù)表示所有數(shù)值。
  • 字符串:以雙引號""括起來的零個或多個Unicode碼位。支持反斜杠開始的轉義字符序列。
  • 布爾值:表示為true或者false。
  • 值的有序列表(array):有序的零個或者多個值。每個值可以為任意類型。序列表使用方括號[]括起來。元素之間用逗號,分割。形如:[value, value]
  • 對象(object):一個無序的“鍵-值對”(pair),其中鍵是字符串。建議但不強制要求對象中的鍵是獨一無二的。對象以花括號{開始,并以}結束。鍵-值對之間使用逗號分隔。鍵與值之間用冒號:分割。
  • null類型:值寫為null

token(6種標點符號、字符串、數(shù)值、3種字面量)之間可以存在有限的空白符并被忽略。四個特定字符被認為是空白符:空格符、水平制表符、回車符、換行符。空白符不能出現(xiàn)在token內(nèi)部(但空格符可以出現(xiàn)在字符串內(nèi)部)。JSON標準不允許有字節(jié)序掩碼,不提供注釋的句法。 一個有效的JSON文檔的根節(jié)點必須是一個對象或一個數(shù)組。

JSON交換時必須編碼為UTF-8。[1]轉義序列可以為:“\”、“"”、“/”、“b”、“f”、“n”、“r”、“t”,或Unicode16進制轉義字符序列(\u后面跟隨4位16進制數(shù)字)。對于不在基本多文種平面上的碼位,必須用UTF-16代理對(surrogate pair)表示,例如對于Emoji字符U+1F602 face with tears of joy在JSON中應表示為:

{ "face": "" }
// or
{ "face": "\uD83D\uDE02" }

應用領域

WEB開發(fā)

JSON最開始被廣泛的應用于WEB應用的開發(fā)。不過當前JSON使用在JavaScript、Java、Node.js應用的情況比較多,php、C#等開發(fā)的WEB應用主要還是使用XML。

NoSQL數(shù)據(jù)庫

相對于傳統(tǒng)的關系型數(shù)據(jù)庫,一些基于文檔存儲的NoSQL非關系型數(shù)據(jù)庫選擇JSON作為其數(shù)據(jù)存儲格式,比較出名的產(chǎn)品有:MongoDB、CouchDB、RavenDB等。

安全問題

讀取JSON

由于JSON是JavaScript的子集,所以一般都會使用eval()作為讀取數(shù)據(jù)的方式,如果是針對可靠的數(shù)據(jù)來源,在不支持原生JSON解析的瀏覽器上面這是最快速的方法。然而由于eval方法同樣可以執(zhí)行任意的JavaScript代碼,因此當數(shù)據(jù)來源不可靠時則可能產(chǎn)生安全問題。如下面的例子,直接用eval執(zhí)行時會跳轉:

var json= eval("{message:(function (){ window.location='http://zh.wikipedia.org/wiki/JSON#.E5.AE.89.E5.85.A8.E6.80.A7.E5.95.8F.E9.A1.8C'; })()}");

其中一種防止不安全代碼出現(xiàn)的解決辦法,是通過瀏覽器原生支持的JSON.parse(str)方法讀取JSON數(shù)據(jù),當前已經(jīng)得到大部分主流瀏覽器的支持(IE8+,F(xiàn)irefox 3.5+,Chrome4+/Safari4+,Opera10+),在不支持原生JSON對象的瀏覽器上面可以使用parseJSON方法進行讀取[2],parseJSON采用解析器驗證讀入的代碼是否真的是JSON代碼,這樣就更安全。但由于這是用模擬的方式讀取,速度上會比eval()慢。

跨站訪問問題

另外一個安全上的問題則是跨站請求偽造(Cross-site request forgery,簡稱CSRF或XSRF)。這個問題在Javascript中的狀況是,由于Javascript采用了稱為“沙盒”的機制,這種機制限制Javascript引擎僅能引入同一個站點的代碼,因而某種程度上提高了安全性。

分享到:
標簽:JSON
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定