PHPは手軽に書ける反面、その技術力によってコードの内容が大きく変わってきてしまう言語です。特に外部から渡される内容に対して適切に対応しなければ大きなセキュリティ上のリスクになります。

今回はそんなPHPコードのチェック行ってくれるライブラリPHP Security Scannerを紹介します。また開発されたばかりですが今後に期待のかかるソフトウェアです。

PHP Security Scannerの使い方

例えば以下のようなコードがあります。

$ cat demo.php 
<?php

function foo() {
	mysql_query($_GET["query"]);

これをスキャンしてみます。

$ php bin/php-security-scanner scan demo.php
Analyzing demo.php
Determining Variable Types
Executing rule: mysql_query() injection
Scanning mysql_query() argument number 1
Possible SQL Injection found in call to mysql_query() argument number 1 in demo.php on line 4

インジェクションのリスクがある旨、表示されています。ここまで分かりやすいコードということは殆どないと思いますが、PHP Security Scannerのようなツールを使ってセキュリティ判定を行うのは大事ではないでしょうか。

PHP Security ScannerはPHP製のオープンソース・ソフトウェア(MIT)です。

ircmaxell/php-security-scanner