[英]CodeQL Scanning JAR Files
我剛剛開始使用 CodeQL,並且已經成功掃描了 Python 個項目。 現在,我開始掃描 Java 個項目,我很難掃描預編譯的項目。
從我收集到的信息來看,CodeQL CLI 似乎包括一個用於 Java 代碼的自動構建器,並將為我構建項目。 我正在嘗試掃描已從 Maven 中央存儲庫編譯的項目。
問題:
感謝您的任何見解!
正如另一個答案中提到的,對於 Java,CodeQL 在編譯期間觀察結果並從中創建一個數據庫。 因此不可能從包含已編譯類的 JAR 構建數據庫。 然而,可以在項目中使用編譯類(例如以 Maven 依賴項的形式,或 JDK 用法),並且 CodeQL 將記錄這些類被使用的信息,但它無法洞察這些類的作用。 這意味着它們將無法使用數據流或污點流,除非 CodeQL 對其進行顯式建模,請參閱支持的框架列表。
但是,由於您的計划是針對來自 Maven Central 的項目運行查詢,因此最容易從 lgtm.com 獲取數據庫,或者直接使用 lgtm.com 上的查詢控制台,另請參閱文檔。 對於大多數項目,lgtm.com 能夠自行構建項目。
lgtm.com 歸 Semmle 所有,Semmle 最初創建了 CodeQL,並被GitHub 收購。
根據我的閱讀,它似乎不適用於已編譯的類。 您將需要 src 代碼,無論是作為(Jar,然后您需要在處理之前解壓縮)還是 Github 項目存在。
通常在運行過程中你會提供構建項目的方式,例如--language=java --command='mvn clean install -DskipTests'
<-- 這需要源代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.