findコマンドで脆弱性チェックをする

Posted by jolantern on Tuesday, September 20, 2016

脆弱性チェック

以前プログラムに脆弱性が含まれているかの確認をしたいということがあった。 SQLインジェクションがあるかどうかというより、この脆弱性はこのフレームワークではこういう処理してたら該当するからな、というもの。 もっとスマートな方法があると思うし、githubとかに上がっているなら検索すれば早いんだけど、手元でやりたいなあと思ったときのメモ。 Linux系OSだったりOSXのようなBSD系OSにはfindコマンドというのがあって、これを使う。

基本的な使い方

$ find 対象ディレクトリ 検索条件 アクション

よくやるやり方

$ find / -name filename

これをやると、すべてのファイルからfilenameという文字列の含まれるファイルを探す。 filenameの指定にはワイルドカードが使用可能。

複数あるファイルから、特定の文字列があるかどうかを調べたいとき

$ find /path/to/project -type f -print | xargs grep pattern

こうしてあげると、すべてのディクレクトリに含まれるファイルから、patternに合致する文字列が含まれているファイルを列挙してくれる。

/path/to/project/hoge.rb: pattern no hukumareru gyou

こんな感じ。 だから、hogeメソッドに定数以外の何かを入れていたらやばいかもしれない、とかそういうときにfindコマンドを使うと楽に見つけられるかもしれない。