2009-11-04 57 views
0

我接管了時間和費用分錄系統。 Apache的CGI。 CGI程序是用bash編寫的:)我將添加一些功能並將其展示給更多的用戶,但在此之前,想要了解還需要查看哪些內容 - 在第一個的術語安全漏洞,CGI陷阱,& c。Apache-CGI-Bash應用程序中的安全或其他gotcahs?

並不是很多用戶,但應用程序執行得非常好,並且在bash中一致且非常重要。頁面看起來像ASP/JSP/PHP格式,大量使用這裏的文檔。參數是從一個單獨的C程序中推斷出來的,會話信息存儲在DB(MySQL)中,並且SQL參數/注入被正確轉義。

我被撕裂,好像這個堆棧真的需要被剝離或沒有? 在大部分直接在bash中編寫的整個應用程序中,需要注意什麼?

回答

2

認爲像一個惡意用戶誰知道系統中的所有代碼(在你的代碼默默無聞 - - ):你會如何顛覆系統?

您能否提供惡意的頭文件,URL或查詢參數,使得惡意注入的文本最終被系統吞併並用於攻擊文件系統,數據庫等? SQL注入是一種攻擊途徑,但也可能存在其他攻擊,除非系統真正處理從用戶那裏收到的所有東西 - 不使用它(不經過非常仔細的檢查和清理!)以形成文件名,系統命令和等等,不存儲它供以後執行,等等。

沒有什麼真正的bash特有的或cgi特定的關於它 - 只是你需要確保安全性的常見或花園形式的偏執狂(甚至沒有像perl的「污點」概念這樣的柺杖 - 它並不完全解決所有問題[[當然遠不止]],但它確實節省你一些努力;-)。

0

什麼是您的應用程序的曝光?它是在互聯網上還是隻能通過內聯網使用?

該應用程序的數據庫是否包含任何敏感信息?

舊應用程序最常見的問題是SQL注入。請記住每隔測試字段,該字段通過表單發送至應用程序。我認爲這是您應該在bash應用程序中注意的第一件事 - 傳入數據直接在SQL語句中使用,而沒有正確的轉義/引用。

你也可以不用擔心XSS和會話劫持如果你想...

如何維護的是應用程序?代碼是否清晰?

+0

今天剛剛在內聯網上,明天就暴露在'網。敏感是相對的,但是。 一個有趣的逃跑機器人。被使用。 MySQL允許十六進制編碼值,因此所有的值都是十六進制編碼的,非常酷我猜想沒有mysql_real_escape_string()風格的bash函數。 代碼很清楚,得承認我印象深刻。 – Xailor 2009-11-06 05:49:11

相關問題