忘れがちなEclipseのショートカットキー

インターフェースで親クラスではなく子クラスの実装を開きたい場合
→宣言を開く(Ctrl + クリック)やクイック型階層(Ctrl + T)

リソースファイルを開きたい場合
→リソースを開く(Ctrl + Shift + R)

呼出し元階層を開きたい場合
→呼び出し元階層を開く(Ctrl + Alt + h)

リソースを開いた後にクイックアウトライン
→クイックアウトライン(Ctrl + O)

入力したテキストで検索したい場合
→インクリメンタル検索(Ctrl + J)

エディタを閉じる場合
→エディタを閉じる(Ctrl + W)、すべてのエディタを閉じる(Ctrl + Shift + W)

Javadocコメントを追加する場合
→Javadocコメントの追加(Alt+Shift+J)

スネークケースとキャメルケースを切り替えたい場合
→スネークケースとキャメルケースの切り替え(ctrl + alt + k)

リファクタリングしたい場合
→名前変更(alt + shift + r)

ローカル変数へ代入したい場合
→ローカル変数に代入(Ctrl + 2→l)

対応する括弧に移動したい場合
→Ctrl + Shift + p)

Javaの定数クラスについて

Javaで定数定義はインタフェースとクラスを使う方法があるが、
クラスを用いたほうがよさそう。

public class Constants {

// privateコンストラクタでインスタンス生成を抑止
private Constants(){}

// 定数
public static final String HOGE = “HOGE”;

}

そして、staticインポート機能を使うと冗長な表記を避けれる。

import static constants.Constants.*;

public class Main {

public static void main(String[] args) {

System.out.println(HOGE);

}

}

JavaScriptでif ==(イコール2つ)と if ===(イコール3つ)の違い

==(イコール2つ)は「等価演算子」
===(イコール3つ)は「厳密等価演算子」

つまり

var val1 = 1;
var val2 = “1”;

if(val1 == val2)
だと同じ

if(val1 === val2)
だと異なる

var val1 = 0;
var val2 = “”;

if(val1 == val2)
数値型の0と文字型の空文字だと同じと判断されていまう

CSRF対策とは

CSRF【 Cross Site Request Forgeries 】/ XSRF
クロスサイトリクエストフォージェリ

forgery:偽造、贋造(がんぞう)、偽物、文書偽造罪

CSRFとはWebサイトにスクリプトや自動転送(HTTPリダイレクト)を仕込むことで
閲覧者に意図せず別のWebサイト上で何らかの操作を行わせる攻撃。

サーバ側でCSRFを防ぐには、サイト外からのリクエストの受信を拒否する必要がある。
ヘッダに含まれる情報を元に参照元が正規のページかどうかをチェックしたり、
フォームの一部にランダムな数値を隠しておいてアクセスの一貫性をチェックしたり、
コンピュータが読み取れないよう画像として表示したチェックコードの入力をユーザに要求するなどの手法があり、これらを組み合わせて対策を講じる必要がある。

クロスサイトスクリプティング (XSS) と似ているが、
XSSは不適切な入力確認によるインジェクションのひとつで全く異なる種類の攻撃。