2009-04-23 59 views
2

C,C++及其類似內存管理中的錯誤衆所周知。我主要以動態的弱類型語言進行編程。在這種語言中是否存在特別重要的問題?我可以注意哪些特定於語言的問題?動態語言中的安全編程

我總是關注標準安全問題,並試圖考慮代碼可能被濫用的方式,但肯定會有很多我可能會犯的表面錯誤,並且有興趣擴展我的知識在這方面。

回答

1

SQL Injection是一種不依賴於類型管理的常見攻擊。通常,缺少輸入驗證是安全問題的一個常見原因。

2

如果您使用類似於eval()的任何東西,那麼存在攻擊風險,尤其是如果您信任應用程序之外的某些東西。

2

僅僅因爲您沒有編寫較低級別的代碼並不意味着您使用的語言以及您的應用程序不會有這些類型的安全問題。因此,我對您的問題的回答是確保您隨時掌握使用的任何工具的最新版本。如果您託管運行應用程序的環境,這對您來說更是一個問題,否則如果您的應用程序必須在其計算機上運行應用程序,那麼這對您的應用程序的用戶來說更是一個問題。

+0

這是一個很好的提醒。 – vezult 2009-04-23 11:41:07

1

在JavaScript的情況下根據所述EC-理事會安全編程VOL.1主漏洞如下:

Cross Site Scriptting(XSS)。在XSS 攻擊,攻擊者通過插入 惡意的JavaScript,VBScript中, 的ActiveX,HTML或Flash進入弱勢 動態頁面提交客戶端 可執行的腳本並執行 用戶的機器腳本收集 用戶的信息。

避免XSS

約束輸入:

  • 定義一個決定至極字符problemetic代碼頁,
  • 限制變量來選擇明確允許的字符。
  • 過濾元字符取決於解釋器(HTML,瀏覽器和文件系統)

APLY規範化: - 規範化技術從驗證輸入之前brinbgs輸入到一個適當的。

驗證DE輸入:

  • 驗證爲字段長度,數據類型,範圍內的所有的外部輸入,並且對於白名單以確保接受onlyknown毫無問題字符。

編碼輸出

  • 轉換的元字符e.g:<,>和 「」,使用HTML實體來代替。
  • 對用戶提供的輸出進行編碼,以防止任何插入的腳本以可執行形式傳輸給用戶。

JavaScript Hijacking:允許 未授權方讀取 機密信息。發生 ,因爲大多數網頁瀏覽器 實施安全模型不 預計使用Javascript的 通信。 JavaScrpt劫持是 一般通過 進行跨站請求僞造。 COSS站點 請求僞造的攻擊,其中 使受害者可以向一個易受攻擊的 網站申請一個或多個HTTP請求 。這種攻擊危害數據完整性和機密性,意味着攻擊者可以讀取受害者的 信息並修改存儲在易受攻擊的站點上的信息 。

一個JavaScript 劫持攻擊可以得到辯護:

  • 通過declinig惡意請求。
  • 通過阻止直接執行JavaScript響應。
+1

優秀!這更多的是我期待的反饋類型。 – vezult 2010-12-25 17:40:30