「ApexとVisualForceにセキュリティ問題がないか?」と一度悩んだ方が少なくありません。この記事でオープンソースの脆弱性検知ツールを紹介したいと思います。
以下のマニュアルはmacOSとHomebrew用
pmd、 java8とVisual Studio Codeのインストール
$ brew install pmd
$ brew tap caskroom/versions
$ brew cask install java8
$ brew cask install visual-studio-code
Visual Studio CodeのSalesforce拡張のインストール
$ code --install-extension salesforce.salesforcedx-vscode
Salesforce拡張の設定
Salesforceの拡張はjava8に依存するから、java8のパスを設定する。
⌘ ,
を押すかCode→Preferences→Settings
からアクセスし、ユーザー設定を開く。
検索フィールドにsalesforcedx-vscode-apex.java.home
を入力する。Edit in settings.json
を押す。
$ /usr/libexec/java_home -v 1.8
を実行し、java8のパスを調べる。settings.json
にjava8のパスを以下のように設定する。
{
"salesforcedx-vscode-apex.java.home": "/Library/Java/JavaVirtualMachines/jdk1.8.0_192.jdk/Contents/Home"
}
PMD taskの設定
Terminal→Configure Tasks...
を選択し、Create tasks.json from template
を選んでOthers
を押す。
以下のコンテンツをコピーペーする。
{
"version": "2.0.0",
"tasks": [
{
"label": "PMD",
"type": "shell",
"command": "pmd",
"args": ["pmd", "-d", "${workspaceFolder}", "-f", "text", "-rulesets", "apex-security,vf-security", "-failOnViolation", "false"],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": {
"owner": "apex",
"fileLocation": ["absolute"],
"pattern": {
"regexp": "^([^:]+):([0-9]+):\\s+(.+)$",
"file": 1,
"line": 2,
"message": 3
}
}
}
]
}
PMDの実行
Visual Studio Codeで⇧⌘B
のショートカットを利用し、問題を検知する。すべての問題を表示するために⇧⌘M
のショートカットを使う。