從Web到Windows 8:JavaScript 安全性

來源:互聯網
上載者:User

多年前,我認為學習如何打高爾夫是個不錯的想法。我在註冊學習本地一些駕駛培訓課程前,從未加入過高爾夫俱樂部。在我 的第一堂課中,教師問我是否學習過同類課程或打過高爾夫。我告訴他沒有時,他說:“很好!我們將不必擔心一些阻礙您進步 的舊習慣了。”

Web 開發人員從瀏覽器過渡到 Windows 市集應用程式時會沿襲一些固有習慣。儘管 Web 開發人員可 以利用現有的 JavaScript 知識,但由於新增了一些功能,因此需要轉變思維方式。安全性就是這樣一個有根本差異的功能。很 多 Web 開發人員習慣將應用程式的安全性轉交給伺服器實現,他們給出諸如以下的理由:“何必麻煩呢?我們可以很輕鬆地繞過 JavaScript。”在 網頁用戶端,安全功能僅被視為提高可用性的方法,無法增強 Web 應用程式的總體安全性。

使用 Windows 8,JavaScript 通過提供保護資料、驗證輸入和分隔潛在惡意內容所需的工具,在確保您應用程式的總體安全性方面發 揮重要作用。在本文中,我將向您介紹如何改變在 Web 開發過程中養成的一些習慣,以便使用 HTML5、JavaScript 和 Windows 運行時的安全功能產生更安全的 Windows 市集應用程式。

輸入驗證

Web 開發人員說:JavaScript 驗證只 用於改進使用效能,而不會增強應用程式的安全性。

Windows 8 開發人員說:使用 HTML5 和 JavaScript 進行驗證是您 防止惡意內容進入應用程式的第一道防線。

對於傳統 Web 應用程式來說,JavaScript 通常只是伺服器的網關。所有對數 據的重要操作(如輸入驗證和儲存)都在伺服器上進行。惡意攻擊者可以在自己的瀏覽器上禁用 JavaScript 或直接提交精心設 計的 HTTP 要求來繞過所有用戶端保護機制。在 Windows 市集應用程式中,開發人員在對資料進行操作前不能依賴伺服器來 清理使用者輸入,因為沒有伺服器。要進行輸入驗證只能依靠 JavaScript 和 HTML5。

在軟體安全性方面,輸入驗證是確保 資料完整性的重要一環。沒有它,攻擊者就可以將每個輸入欄位作為可能攻擊 Windows 市集應用程式的攻擊向量。在《編寫 安全的代碼》第二版 (Microsoft Press, 2003) 中,作者 Michael Howard 和 Steve Lipner 提到: “所有輸入在得到證明之 前都是不可信的,”這已成為有關管理輸入的名言。

您不應信任任何資料,直到證明它符合“已知有用”資料的規範。構 建應用程式時,開發人員知道來自特定欄位的資料應像什麼(即允許清單),或至少知道它不應該包含什麼(即拒絕列表)。進 行輸入驗證時,儘可能始終使用允許清單以將輸入限制為已知的有用資料。通過只允許已知良好的資料,可降低缺少表述錯誤數 據的新方式或未知方式的可能性。

限制、拒絕和淨化

開發人員如何通過將輸入限制為已知的有用資料來降低帶 給使用者的風險?他們使用圖 1 中所示的三個輸入驗證階段來降低惡意內容進入其應用程式的風險。

圖 1 輸入驗證(映像 基於第 4 章“提高 Web 應用程式安全性: 威脅與對策”中的“安全 Web 應用程式的設計指南”的圖 4.4,網址為: bit.ly/emYI5A)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.