Skip to content

Instantly share code, notes, and snippets.

View seyan's full-sized avatar

Seiya Nakayama seyan

View GitHub Profile
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%
//現在時刻を取得
java.util.Date nowTime = new java.util.Date();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
@seyan
seyan / RegexpSample.java
Created March 24, 2011 05:03
正規表現による入力値検証
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexpSample {
/** 英数字の1文字以上5文字以下 */
private static final String REGEX = "[0-9a-z]{1,5}";
/**
* 正規表現を満たすかどうかの判定メソッド
@seyan
seyan / EscapeHtmlTest.java
Created March 25, 2011 01:02
XSS対策:HTMLエスケープメソッド
mport static org.junit.Assert.assertEquals;
import org.junit.Test;
public class EscapeHtmlTest {
/**
* 引数で与えられた文字列にHTMLエスケープを行った結果文字列を返す
* @param str
* @return
@seyan
seyan / EscapeJsTest.java
Created March 28, 2011 00:57
XSS対策:JavaScriptエスケープメソッド
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class EscapeJsTest {
/**
* 引数で与えられた文字列にHTMLエスケープを行った結果文字列を返す
* @param str
* @return
*/
@seyan
seyan / Book.java
Created March 30, 2011 10:10
PreparedStatementサンプル(SQL Server)。複数パラメータを用いた検索を考慮。(検索条件項目が複数存在していて,いずれの項目も必須で無い場合)
import java.util.Date;
/**
* 本一冊を表すクラス
*
*/
public class Book {
private Integer id;
private String title;
@seyan
seyan / CSRFError.html
Created March 31, 2011 10:33
トークン埋め込みによるCSRF対策
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
不正なアクセスです!
</body>
</html>
@seyan
seyan / SesFixaGuardFirstServlet.java
Created April 6, 2011 02:41
セッション固定化対策(ログイン後にセッションIDを更新)
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class SesFixaGuardFirstServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@seyan
seyan / P237Test.java
Created April 8, 2011 08:08
ディレクトリトラバーサル対策:ファイル名にディレクトリ名が含まれないようにする
import static org.junit.Assert.assertEquals;
import java.io.File;
import org.junit.Test;
public class P237Test {
/**
* ファイルのパスを受け取り、ファイル名を返す。
@seyan
seyan / P327Test.java
Created April 12, 2011 06:41
ソルトを用いたパスワードのハッシュ化:レインボークラックなどへの対策
import static org.junit.Assert.assertFalse;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Test;
@seyan
seyan / TestFileCrypt.java
Created April 13, 2011 02:09
データの暗号化と復号化(ファイルと文字列 それぞれ)
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotSame;
import java.io.BufferedReader;
import java.io.Closeable;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;