WEB+DB PRESS Vol.6
特集3 「セキュリティ入門 Webアプリケーション開発編」
・第4章「JSP/サーブレットにおけるセキュリティ」
143ページ、リスト2「正規表現による文字列チェック」の18行目において、半
角英数字かどうかをチェックせねばならないところを、半角数字のみしかチェッ
クしておりませんでした。正しくは次のようになります(赤字の行が訂正箇所です)。
package webdb;
import org.apache.oro.text.perl.Perl5Util;
public class StrChkLib {
Perl5Util util = new Perl5Util();
// 数字チェック
public boolean numberCheck(String str) {
if (util.match("/^[1-9][0-9]+$/", str)) {
return true;
} else {
return false;
}
}
// 半角英数チェック
public boolean numberCheck(String str) {
if (util.match("/^[0-9][A-Za-z]+$",str)){
return true;
} else {
return false;
}
}
// 郵便番号フォーマットチェック
public boolean zipFormatCheck(String str) {
if (util.match("/^[0-9]{3}-[0-9]{4}$/", str)) {
return true;
} else {
return false;
}
}
// メールアドレスチェック
public boolean mailAddressCheck(String str) {
if (util.match("/^[A-Za-z0-9.\\-_]+@([A-Za-z0-9.\\-]+)$/", str)) {
String domainstr = util.group(1);
if (domainstr.indexOf(".") != -1
&& domainstr.startsWith(".") == false
&& domainstr.endsWith(".") == false
&& domainstr.startsWith("-") == false
&& domainstr.endsWith("-") == false
&& util.match("/\\.\\./", domainstr) == false
&& util.match("/-\\./", domainstr) == false
&& util.match("/\\.-/", domainstr) == false ) {
return true;
} else {
return false;
}
} else {
return false;
}
}
}