Security
HTML5 Security cheat sheet
OWASP (Open Web Application Security Project) cheat sheet
https://www.owasp.org/index.php/OWASP_Cheat_Sheet_Series
URIエンコード・デコード
★二度押し防止(トークンなど)
クライアント側
$(function () {
$('form').submit(function() {
$(this).find(':submit').attr('disabled', 'disabled'); // 無効になる
$(this).find(':submit').attr('visibility', 'hidden'); // 非表示になる
});
});
// 二度目の送信を防止
$('form').submit(function() {
$(this).submit(function() {
alert('XXX');
return false;
});
});
// 連続クリックを防止
$('a').click(function() {
$(this).click(function() {
alert('XXX');
return false;
});
});
サーバ側(SAStrutsでトークン利用)
import org.apache.struts.util.TokenProcessor;
@Resource
protected HttpServletRequest request;
@Execute(validator = false)
public String index() {
TokenProcessor.getInstance().saveToken(request);
return "index.jsp";
}
@Execute(validator = true, validate = "validate", input = "index.jsp")
public String result() {
// 方法1
if (!TokenProcessor.getInstance().isTokenValid(request, true)) {
throw new ActionMessagesException("不正なアクセス", false);
}
return "result.jsp";
}
// 方法2
public ActionMessages validate() {
ActionMessages errors = new ActionMessages();
if (!TokenProcessor.getInstance().isTokenValid(request, true)) {
errors.add(
ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("errors.invalid", "Token"));
}
return errors;
}
★暗号化
←Simple Stronger→
MD5(Message-Digest Algorithm) SHA(Secure Hash Algorithm) PBKDF2 Bcrypt/Scrypt
※他サイトを参照
※他サイトを参照