Notes

《JSON 必知必会》Note

JSON 正确格式

JSON 文件

JSON MIME 类型

JSON 的安全问题

跨站请求伪造

假如一家銀行用以執行轉帳操作的URL地址如下: http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName 那麼,一個惡意攻擊者可以在另一个網站上放置如下代碼: <img src="http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman">

如果有賬戶名為Alice的用戶訪問了惡意站點,而她之前剛訪問過銀行不久,登錄信息尚未過期,那麼她就會損失1000資金。 這種惡意的網址可以有很多種形式,藏身於網頁中的許多地方。此外,攻擊者也不需要控制放置惡意網址的網站。例如他可以將這種地址藏在論壇,博客等任何用戶生成內容的網站中。這意味著如果伺服器端沒有合適的防禦措施的話,用戶即使訪問熟悉的可信網站也有受攻擊的危險。 透過例子能夠看出,攻擊者並不能通過CSRF攻擊來直接獲取用戶的帳戶控制權,也不能直接竊取用戶的任何信息。他們能做到的,是欺騙用戶瀏覽器,讓其以用戶的名義執行操作。

阻止 CSRF

  1. 将敏感信息存储成 JSON 对象 -> 避免使用 顶层级 的数组 JSON

     {
         "info": [
             {
                 "user": "aUser"
             },
             {
                 "phone": "123-456-7890"
             }
         ]
     }
    
  2. 仅允许 POST 请求获取数据,禁止使用 GET 请求

    • GET 请求可以直接通过浏览器或 <script> 链接到文件

跨站脚本攻击

防止跨站脚本攻击

跨域资源共享

JSON-P

JSON 验证工具