2009-02-06 85 views
7

我是一個非常瞭解安全性的Web開發人員,儘量讓我的Web應用程序儘可能安全。我如何開始在C#中編寫我自己的Windows應用程序,當它測試我的C#應用​​程序的安全性時,我真的只是一個新手。黑客攻擊您自己的應用程序

只是想知道如果有人有任何好的教程/自述文件關於如何破解你自己的Windows應用程序和編寫安全的代碼。

+1

我想你的意思是**破解**,**黑客**是你在你的應用程序上工作時所做的。 – 2009-02-06 10:29:16

回答

2

除了防止緩衝區溢出的所有明顯的答案,代碼注入,會話highjacking等。人。你應該找別人去檢查你的代碼/軟件,因爲你只能想辦法破解你知道如何防範的軟件。僅僅因爲你無法找到破解你自己的軟件的方法,這並不意味着別人無法做到。

0

爲了確保您的勝利形式的應用程序打開它,並嘗試做lambda用戶不應該做的一切!我會解釋一下:

如果你說「輸入yesno」,試試A-Z,0-9,因爲這是一些用戶試圖找到一些有趣的堆棧跟蹤。所以到處都是驗證器。

當心與數據庫的連接,但如果你來自web dev,你應該比我更清楚:)。

最難的部分是要注意內存泄漏或類似的東西,但這是在大的大應用程序或在不發達的應用程序。

2

這是你很難做的事情,我認爲你是從錯誤的角度接近問題。如果您正在編寫任意大小的應用程序,那麼最後嘗試處理安全性時,通過尋找打破自己的軟件的特定方法幾乎是不可能的。

這是有很多原因的。您已經以某種方式考慮了您的軟件。你想到與之互動的具體方式,並且你知道如何從中獲得最好的結果。你不用考慮利用它的方式來考慮它,而這對你熟悉的軟件來說是一件很難的事情。

另一個問題是,這一點的任務是太大,處理不了。您發現的任何問題都可能導致其他任何問題。系統範圍的安全檢查遠不夠精細。

你應該做的是在編寫軟件時考慮安全性。學習最佳實踐,並考慮從安全角度編寫的每種方法和類。這與單元測試結合在一起,嘗試考慮哪些輸入可能會使我的程序的這個特定部分中斷。然後在那個級別處理它們。

之後,我認爲它是一個快速響應您意識到的任何安全問題的問題。

1

你可能會比閱讀羅斯安德森的Security Engineering書更糟糕。第一版可以下載PDF格式,是一個很好的閱讀。我沒有閱讀第二版,但我懷疑它更好,並有更多的好東西。

請注意,它是一本解釋如何從一開始就構建安全性的書,而不是如何破解安全性,但是對各種安全缺陷的闡述應該爲您提供一個從哪裏開始尋找的好主意。

1

我通過自己的經驗遇到的小東西。

  • 不要使用動態SQL,那麼您很容易受到SQL注入的影響。而是使用具有參數的SQL查詢。
  • 不要像user_id = 1,2,3等增加id,然後在URL中使用something.aspx?user_id = 1,然後我可以猜測下一個ID和會話希望。同樣的帳戶和其他任何事情都很敏感。
  • 小心XSS,(跨站點腳本)。如果您接受用戶輸入並直接存儲它,請確保他們不能插入alert()作爲他們的名字或其他內容。

這絕不是一個完整的清單。就是我最近碰到的東西。