首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

高效構建安全 Java Web 應用(第 2 部分):Rational AppScan 實戰

     編輯:Java 相關知識

系列教程第二部分,使用 IBM Rational AppScan 掃描並修復第一部分構建的 Wealth Java Web 應用安全漏洞,涵蓋安裝授權、掃描配置、漏洞分析、代碼修復、二次驗證、報表生成全流程。

Rational AppScan 核心價值

  • 掃描數千類 Web 漏洞:SQL 注入、XSS、緩衝區溢出等
  • 測試庫定期更新,覆蓋最新威脅
  • 內建合規報表:PCI DSS、SOX、HIPAA、OWASP Top 10、ISO 27001 等
  • 支援擴展機制(Email 通知、PPT 導出等)

完整實戰流程

1. 安裝與授權

  • 安裝需 .NET Framework 3.0+,Windows 平台
  • 啟動自動連線 IBM 服務器更新測試庫
  • 授權綁定 MAC 地址與硬盤序列號,在線生成 License 文件導入

2. 掃描配置最佳實踐

  • 掃描模板:自定義保存配置,確保可復現、團隊共享
  • 掃描類型:選「Web Application Scan」,非網絡服務掃描
  • 起始 URL:輸入應用根路徑(如 https://192.168.0.4:9080/Wealth/),AppScan 自動發現所有頁面
  • 登錄管理:選「自動」,預置測試帳號密碼,避免掃描中斷
  • 測試策略:選「Application-Only」,聚焦應用層漏洞

3. 漏洞分析與修復(首次掃描發現 18 個問題)

風險級別數量典型漏洞修復要點
高風險8XSS (realestate.jsp 等)、Session Fixation (login.jsp)、SQL 注入 (zip 字段)輸入驗證(正則白名單)、登錄後 invalidate session 重建、參數化查詢/輸入過濾
中風險3Database Error Pattern完善輸入檢查防注入
低風險2Session Identifier Not Updated應用生成 Session ID
資訊級3JSP 註釋洩露敏感信息移除 HTML 註釋,改用 JSP 註釋 <%-- --%>

4. 代碼修復示例


// login.jsp:防 Session Fixation + 輸入驗證
session.invalidate();
session = request.getSession(true);
session.setAttribute("userid", userid);

if (request.getMethod().equals("POST")) {
    Pattern input = Pattern.compile("[a-zA-Z0-9]*");
    Matcher m = input.matcher(userid);
    boolean matchu = m.matches();
    // ... 密碼同樣驗證
}

// realestate.jsp:防 XSS + SQL 注入
Pattern input = Pattern.compile("[a-zA-Z0-9\\p{Blank}]*");
// address、city、state、zip 分別驗證
// state: "[a-zA-Z][a-zA-Z]"  zip: "[0-9]{5}"

5. 二次掃描驗證

清理測試數據後重新掃描,使用相同模板 WealthScan2。結果:所有已知漏洞修復,無新問題。

6. 專業報表生成

  • 開發人員報表:含修復建議、代碼片段、請求/響應詳情
  • 合規報表:OWASP Top 10、PCI DSS 等標準格式
  • 增量分析報表:對比多次掃描差異
  • 自定義模板:加公司 Logo、密級標識

7. 擴展應用:Email 通知擴展

  • 下載 Mail-E-Vent.zip,直接導入 Extension Manager
  • 配置 SMTP、收件人、觸發條件(掃描完成、連線中斷、需手工登錄)
  • 掃描異常自動郵件通知,大型應用掃描必備

總結

通過 Rational AppScan 系統化掃描、分析、修復、驗證、報告,Wealth 應用已安全上線。安全非一次性工作,需納入版本發布流程持續執行。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved