網路安全威脅從未停歇過,許多人怪罪作業系統軟體廠商,微軟就成為眾所矢之。一個不安全的網路環境起源在於網頁程式碼的撰寫不夠嚴謹、安全,應回歸源頭重視網頁安全程式碼的設計。

隨著Web 2.0風潮興起,駭客開始染指網頁系統安全性較弱的個人部落格、論壇或社交網站。由於許多企業所架設的網站已開始重視弱點掃瞄等安全防護工作,因此駭客逐漸轉向為數眾多的個人部落格網站,先利用這些網站上的網頁應用程式弱點,植入惡意程式後,當使用者同樣以有安全漏洞的瀏覽器連結上該網站瀏覽網頁時,間諜程式、木馬程式等隨之進入到個人電腦來。

新算科技網站設計強化網頁設計安全!!

所有的網頁漏洞中,SQL Injection(有人翻譯成資料庫隱碼攻擊)算是最廣為人知的,大部分的開發者應該都略有所聞。它不限平台、不限資料庫、也不限程式語言,是一種設計邏輯上的疏失造成的,後果卻相當嚴重。可是很不幸地,它似乎還是駭客事件裡的一哥,用Google簡單搜尋一下,可以找到相當多與SQL Injection有關的網站入侵新聞。

相形之下,XSS的名氣不如SQL Injection來得響亮,但其威脅性卻不容小覷。 所謂XSS的定義是,使用者在輸入到網站的文字內容中,夾帶了JavaScript程式碼。網站顯示這段惡意的內容時,一併執行了殖入的程式碼,而對後續瀏覽這個網頁的使用者造成威脅。雖然我們知道在網頁中JavaScript無法存取本機的檔案等資源,但它藏於無形,透過精巧的設計,還是可以做出許多可怕的事。

Cookie是Web Server寄放在Client端的一小段資料,可以用來保存與使用者個人相關的設定記錄。在大部分的情形下,Cookie存放資料的功能可以被ASP.NET中的Session、Cache或直接存放DB取代。但是,有一些狀況下,Cookie也有其獨到的不可取代性。應用Cookie時,要特別認清一個觀念---Cookie的內容為何是由瀏覽器夾帶在Request中主動告知的,因此有心人可以輕易地模仿或偽造Cookie內容,另外,長效式的Cookie被存放在磁碟後,也可能被惡意網站或程式竊取。以ASP.NET內建的表單式認證機制(Form Authentication)為例,也是採取寫入Cookie的方式註記登入狀態,而web.config中forms設定中,即可使用protection屬性決定是否要啟用加密保護,足見加密已是Cookie應用時的基本要求了。

我們應盡可能減少將機密性資料寫入媒體的機會,以降低資料外洩的風險,但寫入機密資料的需求沒辦法百分之百避免。將機密資料保存在檔案或其他媒體的場合,對資料加密可提供有效的保護作用。

網站系統中,少不了讓使用者上傳檔案的應用,一旦設計不當,也會讓你的網站危機四伏。上傳檔案可能引發危機的原理跟SQL Injection、XSS相同,都來自於” 過於信任使用者的輸入資料” !! 大部分的HTTP上傳程式的寫法,會將上傳的檔案,寫入特定的網站目錄,未來再讓使用者以URL方式直接連向這些檔案。這種做法最大的問題在於使用者會上傳何種檔案內容無法預期,若在上傳時未加攔阻檢核,寫入的網站目錄又未做好執行權限限制,可能出大問題。

一般說來,這類惡意程式多半以JavaScript嵌入網頁程式中,而多數專家認為以瀏覽器而言,使用開放原始碼的Firefox比起IE,能讓使用者較為方便地開啟或關閉JavaScript功能,因而建議少用IE,然而這畢竟只是消極防範。甚至在一些企業的資安政策當中,明文禁止使用者下載或安裝非經授權的應用程式。此外,就算關閉JavaScript功能,網站中還有其他程式漏洞可被利用。

新算科技遵循最佳安全準則撰寫程式,不似許多速成的網頁設計公司幾乎未見討論設計安全程式碼的重要性,網頁維護者必須經常檢視系統漏洞或更新程式,才不會被有心人士攻擊網頁應用程式的弱點。

Asynchronous JavaScript And XML簡稱AJAX,是近來滿流行的一種舊技術,主要目的是可以讓網頁不用重新載入的狀態下就能和伺服器溝通,甚至透過某些 client 端的事件就可以即時回傳 server 端的資料回來,例如 Google 的搜尋功能,字打到一半就會出現關鍵字參考和統計數據或是像 Yahoo 的某些資訊區塊滑鼠移過去就馬上有最新的資料顯示出來。新算科技自行研發運用Veneer ASP.NET的技術架構企業的網站,都可透過ASP.NET AJAX開發出能有效連結Client端及Server端資料的企業網站,幫助企業用戶建置互動式網頁。

Veneer AJAX.NET技術突破了傳統Web 程式最大的瓶頸,帶來更具親和力的使用者體驗與更快速便捷的資料存取,其特點如下:
  • 用戶可自訂畫面,不受系統設計限制。
  • 用戶可輕鬆自訂常用功能模組,以自己喜愛的方式管理常用功能。
  • 最小化Server-side與Client-side 資料量,提高服務效率與穩定度。
  • 動態背景傳遞Server-side與Client-side 資料,完全無須重整畫面(Refresh)帶來絕佳的使用者體驗。
  • 動態隨機編碼保護Client-side JavaScript 程式碼,保護資料與網站安全。
  • 透過預存程序(Stored Procedures)進行資料存取、避免SQL Injection 攻擊。
  • 透過Web Services 技術實現跨平台資料傳遞功能(Web、行動裝置)。
  • 相容於Microsoft .NET Frameworks。
  • Veneer AJAX.NET 模型
    Veneer AJAX.NET 資料傳遞邏輯
    Veneer AJAX.NET 資料傳遞示意

    對於網頁設計者來說,若想要獲得網友持續支持,必須多注意網頁程式安全的問題,在網頁設計之初,多多重視網頁安全程式碼的設計撰寫,才是根本解決之道。

    新算科技股份有限公司 Reality Technology Corp. All rights reserved.