Javaセキュアコーディングセミナー東京 第4回 メソッドとセキュリティ 演習解説
|
|
|
- あつとし こうじょう
- 7 years ago
- Views:
Transcription
1 Japan Computer Emergency Response Team Coordination Center 電子署名者 : Japan Computer Emergency Response Team Coordination Center DN : c=jp, st=tokyo, l=chiyoda-ku, [email protected], o=japan Computer Emergency Response Team Coordination Center, cn=japan Computer Emergency Response Team Coordination Center 日付 : :37:15 +09'00' Javaセキュアコーディングセミナー東京 第4回 メソッドとセキュリティ 演習解説 2012年12月16日(日) JPCERTコーディネーションセンター 脆弱性解析チーム 熊谷 裕志 戸田 洋三 1
2 Hands-on Exercise finalizer 攻撃を阻止しよう 他のクラスから ht に入っているキー 1 の エントリを消せるか? 2
3 Hands-on Exercise(1) finalizer 攻撃を阻止しよう 3
4 サンプルアプリケーション (1/2) public class LicenseManager { public LicenseManager() { if (!licensevalidation()) { throw new SecurityException("License Invalid!"); private boolean licensevalidation() { // ライセンスファイルをリードしてチェックし ライセンスが正当なら true を返す return false; public class SecuritySystem { private static LicenseManager licensemanager = null; public static void register(licensemanager lm) { // licensemanager が初期化されていない場合のみ登録 if (licensemanager == null) { if (lm == null) { System.out.println("License Manager invalid!"); System.exit(1); licensemanager = lm; Heinz M. Kabutz. Exceptional Constructors - Ressurecting the dead. Java Specialists Newsletter
5 サンプルアプリケーション (2/2) public class Application { public static void main(string[] args) { LicenseManager lm; try { lm = new LicenseManager(); catch(securityexception ex) { lm = null; SecuritySystem.register(lm); System.out.println("Now let s get things started"); % ls *.java Application.java LicenseManager.java SecuritySystem.java % javac *.java % java Application License Manager invalid! % 5
6 ファイナライザー攻撃を行うコード (1/2) public class LicenseManagerInterceptor extends LicenseManager { private static LicenseManagerInterceptor instance = null; public static LicenseManagerInterceptor make() { try { new LicenseManagerInterceptor(); catch(exception ex) { // 例外を無視 try { synchronized(licensemanagerinterceptor.class) { while (instance == null) { System.gc(); LicenseManagerInterceptor.class.wait(100); catch(interruptedexception ex) { return null; return instance; public void finalize() { System.out.println("In finalize of " + this); synchronized(licensemanagerinterceptor.class) { instance = this; LicenseManagerInterceptor.class.notify(); public LicenseManagerInterceptor() { System.out.println("Created LicenseManagerInterceptor"); 攻撃コード 6
7 ファイナライザー攻撃を行うコード (2/2) 攻撃コード public class AttackerApp { public static void main(string[] args) { LicenseManagerInterceptor lm = LicenseManagerInterceptor.make(); SecuritySystem.register(lm); // now we call the other application Application.main(args); % ls Application.class LicenseManager.class SecuritySystem.class AttackerApp.java LicenseManagerInterceptor.java % javac *.java % java AttakerApp In finalize of LicenseManagerInterceptor@7dcb3cd Now let s get things started % 7
8 ファイナライザ攻撃対策 finalize() メソッドを上書きされないように定義 重要なインスタンスは 初期化の完了を必ず確認 サブクラス化による悪用を防ぐために クラスをfinal 宣言する サンプルコードを 修正してみよう! 8
9 ファイナライザ攻撃対策 解説編 finalize() メソッドを上書きされないように定義 重要なインスタンスは 初期化の完了を必ず確認 サブクラス化による悪用を防ぐために クラスをfinal 宣言する finalize() をサブクラスで上書きされないよう final 宣言つきで定義 LicenseManager クラスを final 宣言 9
10 LicenseManager の修正 解説編 public final class LicenseManager { public LicenseManager() { if (!licensevalidation()) { throw new SecurityException("License Invalid!"); private boolean licensevalidation() { // ライセンスファイルをリードしてチェックし ライセンスが正当なら true を返す return false; final protected final void finalize(){ final 宣言つきで finalize() メソッドを定義 10
11 修正の効果 解説編 この修正により 攻撃コードはコンパイル できなくなる % javac AttackerApp.java LicenseManagerInterceptor.java LicenseManagerInterceptor.java:1: error: cannot inherit from final LicenseManager public class LicenseManagerInterceptor extends LicenseManager { ^ LicenseManagerInterceptor.java:19: error: finalize() in LicenseManagerInterceptor cannot override finalize() in LicenseManager public void finalize() { ^ overridden method is final 2 errors % 11
12 ファイナライザ攻撃対策 解説編 finalize() メソッドを上書きされないように定義 重要なインスタンスは 初期化の完了を必ず確認 サブクラス化による悪用を防ぐために クラスをfinal 宣言する LicenseManager のコンストラクタが正常終了したことを確認できるようにする 初期化完了フラグを設ける 12
13 LicenseManager の修正 解説編 public class LicenseManager { boolean init = false; 初期化完了フラグ public LicenseManager() { if (!licensevalidation()) { throw new SecurityException("License Invalid!"); init = true; private boolean licensevalidation() { // ライセンスファイルをリードしてチェックし ライセンスが正当なら変更する trueを返す return false; コンストラクタが正常終了する最後に初期化完了フラグの値を 13
14 SecuritySystem の修正 解説編 public class SecuritySystem { private static LicenseManager licensemanager = null; public static void register(licensemanager lm) { // licensemanager が初期化されていない場合のみ登録 if (licensemanager == null) { if (lm == null) { System.out.println("License Manager invalid!"); System.exit(1); if (lm.init == false) { System.out.println("incomplete License Manager!"); System.exit(2); licensemanager = lm; 渡されたインスタンスが正しく初期化されたものかどうかチェックする 14
15 修正の効果 解説編 この修正により 初期化完了していないイ ンスタンスを検出できるようになる % java AttackerApp In finalize of LicenseManagerInterceptor@2aa05bc3 incomplete License Manager! % しかしこれでは不十分! 攻撃コードで init の値を操作してしまえば... 15
16 攻撃コード ( 改 ) 解説編 攻撃コード public class AttackerApp { public static void main(string[] args) { LicenseManagerInterceptor lm = LicenseManagerInterceptor.make(); lm.init = true; SecuritySystem.register(lm); // now we call the other application Application.main(args); init の値を操作 % javac AttackerApp.java % java AttackerApp In finalize of LicenseManagerInterceptor@2aa05bc3 Now let s get things started % 攻撃成功! 初期化完了フラグを改変されないようにする 必要がある 16
17 LicenseManager をさらに修正 解説編 public class LicenseManager { private 宣言する private boolean init = false; public boolean is_init(){ return init; public LicenseManager() { if (!licensevalidation()) { throw new SecurityException("License Invalid!"); init = true; private boolean licensevalidation() { // ライセンスファイルをリードしてチェックし ライセンスが正当なら true を返す return false; init の値を調べるメソッドを追加 17
18 SecuritySystem をさらに修正 解説編 public class SecuritySystem { private static LicenseManager licensemanager = null; public static void register(licensemanager lm) { // licensemanager が初期化されていない場合のみ登録 if (licensemanager == null) { if (lm == null) { System.out.println("License Manager invalid!"); System.exit(1); if (lm.is_init() == false) { System.out.println("incomplete License Manager!"); System.exit(2); licensemanager = lm; 初期化完了のチェックはメソッドを呼び出す形に変更 18
19 さらなる修正の効果 解説編 AttackerApp から初期化フラグを改変でき なくなる % javac AttackerApp.java AttackerApp.java:4: error: init has private access in LicenseManager lm.init = true; ^ 1 error % 19
20 Hands-on Exercise(2) 他のクラスから ht に入っているキ ー 1 のエントリを消せるか? 20
21 Hands-on Exercise(2) 他のクラスから ht に入っているキー 1 のエントリを消せるか? import java.util.hashtable; import java.security.accesscontroller; import java.security.securitypermission; public final class SensitiveHash { private Hashtable<Integer,String> ht = new Hashtable<Integer,String>(); 問題のコード SensitiveHash() { ht.put(1, "one"); ht.put(2, "two"); ht.put(3, "three"); void removeentry(object key) { check("removekeypermission"); ht.remove(key); public void showentries() { System.out.println("" + ht.get(1)); System.out.println("" + ht.get(2)); System.out.println("" + ht.get(3)); 例えば SensitiveHash sh = new SensitiveHash(); sh.removeentry(1); sh.showentries(); セキュリティチェックされているためエントリーを消すことはできない private void check(string directive) { SecurityPermission sp = new SecurityPermission(directive); AccessController.checkPermission(sp); 21
22 Hands-on Exercise(2) 他のクラスから ht に入っているキー 1 のエントリを消せるか? やってみる 22
23 Hands-on Exercise(2) 他のクラスから ht に入っているキー 1 のエントリを消せるか? class AttackHash extends SensitiveHash { void removeentry(object key) { ht.remove(key); SensitiveHash クラスは final 宣言されているのでサブクラスは作れない import java.util.hashtable; public class Attack { public static void main(string[] args){ SensitiveHash sh = new SensitiveHash(); sh.removeentry(1); sh.showentries(); removekeypermission が許可されていないので removeentry は実行できない 23
24 Hands-on Exercise(2) 他のクラスから ht に入っているキー 1 のエントリを消せるか? リフレクションを使えば エントリーを消すことができる 24
25 Hands-on Exercise(2) 他のクラスから ht に入っているキー 1 のエントリを消せるか? import java.util.hashtable; import java.lang.reflect.field; import java.lang.reflect.method; public class AttackAns { public static void main(string[] args){ try { Class<SensitiveHash> c = SensitiveHash.class; SensitiveHash sh = new SensitiveHash(); Field field = c.getdeclaredfield("ht"); field.setaccessible(true); Hashtable hh = (Hashtable)field.get(sh); hh.remove(1); sh.showentries(); リフレクションを使って private フィールドにアクセスする Hashtable#remove で削除 catch (Exception ex) { ex.printstacktrace(system.out); 25
26 Hands-on Exercise(2) 他のクラスから ht に入っているキー 1 のエントリを消せるか? import java.util.hashtable; import java.security.accesscontroller; import java.security.securitypermission; 問題のコード public final class SensitiveHash { private Hashtable<Integer,String> ht = new Hashtable<Integer,String>(); SensitiveHash() { ht.put(1, "one"); ht.put(2, "two"); ht.put(3, "three"); void removeentry(object key) { check("removekeypermission"); ht.remove(key); public void showentries() { System.out.println("" + ht.get(1)); System.out.println("" + ht.get(2)); System.out.println("" + ht.get(3)); private void check(string directive) { SecurityPermission sp = new SecurityPermission(directive); AccessController.checkPermission(sp); removekeypermission の権限があるかどうかのチェックのみ セキュリティマネージャは有効になっていない 26
27 Hands-on Exercise(2) 他のクラスから ht に入っているキー 1 のエントリを消せるか? ということで リフレクションが使えて エントリーを消すことができる 27
Javaセキュアコーディングセミナー2013東京第1回 演習の解説
Java セキュアコーディングセミナー東京 第 1 回オブジェクトの生成とセキュリティ 演習の解説 2012 年 9 月 9 日 ( 日 ) JPCERT コーディネーションセンター脆弱性解析チーム戸田洋三 1 演習 [1] 2 演習 [1] class Dog { public static void bark() { System.out.print("woof"); class Bulldog
Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac
Actual4Test http://www.actual4test.com Actual4test - actual test exam dumps-pass for IT exams Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN
やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF
pref : 2004/6/5 (11:8) pref : 2004/6/5 (11:8) pref : 2004/6/5 (11:8) 3 5 14 18 21 23 23 24 28 29 29 31 32 34 35 35 36 38 40 44 44 45 46 49 49 50 pref : 2004/6/5 (11:8) 50 51 52 54 55 56 57 58 59 60 61
新・明解Java入門
537,... 224,... 224,... 32, 35,... 188, 216, 312 -... 38 -... 38 --... 102 --... 103 -=... 111 -classpath... 379 '... 106, 474!... 57, 97!=... 56 "... 14, 476 %... 38 %=... 111 &... 240, 247 &&... 66,
Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1
Java (9) 1 Lesson 7 2008-05-20 Java System.out.println() 1 Java API 1 Java Java 1 GUI 2 Java 3 1.1 5 3 1.0 10.0, 1.0, 0.5 5.0, 3.0, 0.3 4.0, 1.0, 0.6 1 2 4 3, ( 2 3 2 1.2 Java (stream) 4 1 a 5 (End of
Prog2_9th
2013 年 11 月 21 日 ( 木 ) 実施例外処理 Java 言語では, 作成したプログラムを実行する際に, 記述した処理が想定しない事態によって実行できなくなる場合を例外と呼び, その例外への対処, 即ち例外処理が求められる これまでの教材に登場した例外の中で,IOException はコンパイラがチェックするため, 例外処理を必ず記述しなければコンパイルが出来ないものであるのに対して,ArithmeticException
JBoss Application Server におけるディレクトリトラバーサルの脆弱性
Japan Computer Emergency Response Team Coordination Center 電子署名者 Japan Computer Emergency Response Team Coordination Center DN c=jp, st=tokyo, l=chiyoda-ku, [email protected], o=japan Computer
JavaプログラミングⅠ
Java プログラミング Ⅱ 4 回目クラスの機能 (2) コンストラクタ クラス変数 クラスメソッド課題 確認 問題次の各文は正しいか誤っているか答えなさい (1) コンストラクタはメソッドと同様に戻り値をもつ (2) コンストラクタはオブジェクトが生成されると最初に実行される (3) コンストラクタはメソッドと同様にオーバーロードができる (4) コンストラクタは常に public メンバとしなければならない
グラフの探索 JAVA での実装
グラフの探索 JAVA での実装 二つの探索手法 深さ優先探索 :DFS (Depth-First Search) 幅優先探索 :BFS (Breadth-First Search) 共通部分 元のグラフを指定して 極大木を得る 探索アルゴリズムの利用の観点から 利用する側からみると 取り替えられる部品 どちらの方法が良いかはグラフに依存 操作性が同じでなければ 共通のクラスの派生で作ると便利 共通化を考える
問題1 以下に示すプログラムは、次の処理をするプログラムである
問題 1 次に示すプログラムは 配列 a の値を乱数で設定し 配列 a の値が 333 より大きく 667 以下の値 の合計値を求めるプログラムである 1 と 2 に適切なコードを記述してプログラムを完 成させよ class TotalNumber { public static void main(string[] args) { int[] a = new int[1000]; // 1 解答条件
Java演習(4) -- 変数と型 --
50 20 20 5 (20, 20) O 50 100 150 200 250 300 350 x (reserved 50 100 y 50 20 20 5 (20, 20) (1)(Blocks1.java) import javax.swing.japplet; import java.awt.graphics; (reserved public class Blocks1 extends
Spacewalkにおけるクロスサイトフォージェリ(CSRF)の脆弱性
Japan Computer Emergency Response Team Coordination Center 電子署名者 : Japan Computer Emergency Response Team Coordination Center DN : c=jp, st=tokyo, l=chiyoda-ku, [email protected], o=japan Computer
Java知識テスト問題
Java 知識テスト SDAS プログラマ(Java 編 ) 運営事務局 このテストは J2EE プログラマとしての Java の知識を評価するものです 問題は 30 問, テスト時間は J2EE 知識テストとあわせて 90 分です 問題は全て択一式です 選択肢から 1 つだけ選択してください 資料の閲覧は禁止です テストが終わり次第 答案用紙を提出していただいてかまいません テスト終了後, 本テストの内容を他の方に話さないでください
I java A
I java 065762A 19.6.22 19.6.22 19.6.22 1 1 Level 1 3 1.1 Kouza....................................... 3 1.2 Kouza....................................... 4 1.3..........................................
PowerPoint プレゼンテーション
オブジェクト指向 プログラミング演習 第 4 回継承 オーバーライド ポリモルフィズム 今日のお題 継承 オーバーライド ポリモルフィズム 継承 (inherit) あるクラス c のサブクラス s を定義する : このとき s は c を継承していると言う 何かの下位概念を表すクラスは その上位概念を表すクラスの属性や機能を ( 基本的には ) 使える 継承の例 大学生 長崎県立大学の学生 大学生を継承する概念
Microsoft Word - keisankigairon.ch doc
1000000100001010 1000001000001011 0100001100010010 1010001100001100 load %r1,10 load %r2,11 add %r3,%r1,%r2 store %r3,12 k = i + j ; = > (* 1 2 3 4 5 6 7 8 9 10) 3628800 DO 3 I=1,3 DO3I=1.3 DO3I 1.3
人工知能入門
藤田悟 黄潤和 探索とは 探索問題 探索解の性質 探索空間の構造 探索木 探索グラフ 探索順序 深さ優先探索 幅優先探索 探索プログラムの作成 バックトラック 深さ優先探索 幅優先探索 n 個の ueen を n n のマスの中に 縦横斜めに重ならないように配置する 簡単化のために 4-ueen を考える 正解 全状態の探索プログラム 全ての最終状態を生成した後に 最終状態が解であるかどうかを判定する
Oracle Java 標準ライブラリ AtomicReferenceArray クラスにおけるデシリアライズに関する脆弱性
Java アプリケーション脆弱性事例調査資料 について この資料は Java プログラマである皆様に 脆弱性を身近な問題として感じてもらい セキュアコーディングの重要性を認識していただくことを目指して作成しています Java セキュアコーディングスタンダード CERT/Oracle 版 と合わせて セキュアコーディングに関する理解を深めるためにご利用ください JPCERT コーディネーションセンター
Apache ActiveMQ における認証処理不備の脆弱性
Japan Computer Emergency Response Team Coordination Center 電子署名者 : Japan Computer Emergency Response Team Coordination Center DN : c=jp, st=tokyo, l=chiyoda-ku, [email protected], o=japan Computer
K227 Java 2
1 K227 Java 2 3 4 5 6 Java 7 class Sample1 { public static void main (String args[]) { System.out.println( Java! ); } } 8 > javac Sample1.java 9 10 > java Sample1 Java 11 12 13 http://java.sun.com/j2se/1.5.0/ja/download.html
Microsoft PowerPoint - chap10_OOP.ppt
プログラミング講義 Chapter 10: オブジェクト指向プログラミング (Object-Oriented Programming=OOP) の入り口の入り口の入り口 秋山英三 F1027 1 例 : 部屋のデータを扱う // Test.java の内容 public class Test { public static void main(string[] args) { double length1,
制御システムセキュリティアセスメントサービス
Japan Computer Emergency Response Team Coordination Center 電子署名者 : Japan Computer Emergency Response Team Coordination Center DN : c=jp, st=tokyo, l=chiyoda-ku, [email protected], o=japan Computer
JavaプログラミングⅠ
Java プログラミング Ⅰ 3 回目変数 今日の講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能です 変数は 型 ( データ型ともいいます ) と識別子をもちます 2 型 変数に記憶できる値の種類です型は 値の種類に応じて次の 8 種類があり これを基本型といいます 基本型値の種類値の範囲または例 boolean 真偽値 true または
基本情報STEP UP演習Java対策
トレーニング編 1. 予約語 extends アクセスレベル class サブクラス名 extends スーパクラス名 { (1) スーパクラス ( 既存のクラス ) を拡張して, サブクラス ( 新しいクラス ) を定義する場合に extends を利用する (2) extends の後ろには, スーパクラスの名前を一つだけ指定できる (3) サブクラスからインスタンスを生成すると, スーパクラスに定義されたインスタンス変数やメソッドがこのインスタンス内部に引き継がれる
プログラミング基礎I(再)
山元進 クラスとは クラスの宣言 オブジェクトの作成 クラスのメンバー フィールド 変数 配列 メソッド メソッドとは メソッドの引数 戻り値 変数の型を拡張したもの 例えば車のデータベース 車のメーカー 車種 登録番号などのデータ データベースの操作 ( 新規データのボタンなど ) プログラムで使う部品の仕様書 そのクラスのオブジェクトを作ると初めて部品になる 継承 などの仕組みにより カスタマイズが安全
オブジェクト指向プログラミング・同演習 5月21日演習課題
オブジェクト指向プログラミング 同演習 5 月 21 日演習課題 問題 1 配列の例外処理例外が発生する可能性のある処理を try で囲み その後に catch で例外を捕捉します 例外処理の終了処理として finally が行われます これは書かなくて自動的に行われます 提出課題 1 (Kadai052301.java) 以下のプログラムは例外処理をしていない ArrayIndexOutOfBoundsException
SpringSecurity
Spring Security 1/40 OUTLINE Spring Security Spring Securityを使った認証の仕組み Spring Securityを使った独自認証 認証エラーメッセージの変更 2/40 Spring Security 3/40 Spring Security とは アプリケーションのセキュリティを高めるためのフレームワーク 認証 認可機能 その他 多数のセキュリティ関連の機能を持つ
ログを活用したActive Directoryに対する攻撃の検知と対策
電子署名者 : Japan Computer Emergency Response Team Coordination Center DN : c=jp, st=tokyo, l=chiyoda-ku, Japan Computer Emergency Response [email protected], o=japan Computer Emergency Response Team
JAVA入門
JAVA 入門後期 10 情報処理試験例題解説 H14 年度秋問 8 次の Java プログラムの説明及びプログラムを読んで, 設問に答えよ プログラムの説明 ディジタル論理回路シミュレータを作成するためのクラスとテスト用クラスである (1) ゲートを表す抽象クラス Gate のサブクラスとして, NOT ゲートを表すクラス NotGate 及び AND ゲートを表すクラス AndGate を定義する
class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =
Part2-1-3 Java (*) (*).class Java public static final 1 class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value
解きながら学ぶJava入門編
44 // class Negative { System.out.print(""); int n = stdin.nextint(); if (n < 0) System.out.println(""); -10 Ÿ 35 Ÿ 0 n if statement if ( ) if i f ( ) if n < 0 < true false true false boolean literalboolean
JavaプログラミングⅠ
Java プログラミング Ⅰ 3 回目変数 今日の講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能です 変数は 型 ( データ型ともいいます ) と識別子をもちます 2 型 変数に記憶できる値の種類です型は 値の種類に応じて次の 8 種類があり これを基本型といいます 基本型値の種類値の範囲または例 boolean 真偽値 true または
Java講座
~ 第 1 回 ~ 情報科学部コンピュータ科学科 2 年竹中優 プログラムを書く上で Hello world 基礎事項 演算子 構文 2 コメントアウト (//, /* */, /** */) をしよう! インデントをしよう! 変数などにはわかりやすい名前をつけよう! 要するに 他人が見て理解しやすいコードを書こうということです 3 1. Eclipse を起動 2. ファイル 新規 javaプロジェクト
た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name
クラス ( 教科書第 8 章 p.267~p.297) 前回は処理をまとめる方法として メソッドについて学習した 今回はメソッドとその処理の対象となるデータをまとめるためのクラスについて学習する このクラスはオブジェクト指向プログラミングを実現するための最も重要で基本的な技術であり メソッドより一回り大きなプログラムの部品を構成する 今回はクラスにおけるデータの扱いとクラスの作成方法 使用方法について説明していく
10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV
[email protected] [email protected] http://www.misojiro.t.u-tokyo.ac.jp/ tutimura/sem3/ 2002 12 11 p.1/33 10/16 1. 10/23 2. 10/30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20
MySQL Connector/J における SQL インジェクションの脆弱性
Japan Computer Emergency Response Team Coordination Center 電子署名者 Japan Computer Emergency Response Team Coordination Center DN c=jp, st=tokyo, l=chiyoda-ku, [email protected], o=japan Computer
226
226 227 Main ClientThread Request Channel WorkerThread Channel startworkers takerequest requestqueue threadpool WorkerThread channel run Request tostring execute name number ClientThread channel random
Java言語 第1回
Java 言語 第 2 回簡単な Java プログラムの作成と実行 知的情報システム工学科 久保川淳司 [email protected] 簡単な Java プログラム Java プログラムのファイル名 Java プログラムのファイル名命名ルール ファイル名とクラス名は同じでなければならない HelloJava.java public class HelloJava { public
シミュレーションの簡単な例 GUI 無しのシミュレーションを作る GUI を作る パラメタを設定するデモンストレーションをする 2 オブジェクト指向プログラミング特論
例 : 簡単な酔歩シミュレーション 1 オブジェクト指向プログラミング特論 シミュレーションの簡単な例 GUI 無しのシミュレーションを作る GUI を作る パラメタを設定するデモンストレーションをする 2 オブジェクト指向プログラミング特論 簡単な二次元酔歩 Walker は二次元面内で 4 方向に等確率で移動 メソッド move で移動し 新しい位置を返す Simulation クラス 多数の
1/8 ページ Java 基礎文法最速マスター Java Javaの文法一覧です 他の言語をある程度知っている人はこれを読めばJavaの基礎をマスターしてJavaを書くことができるようになっています 簡易リファレンスとしても利用できると思いますので これは足りないと思うものがあれば教えてください 1. 基礎 class の作成プログラムはclassに記述します たとえばSampleという名前のclassを作る場合
3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World");
(Basic Theory of Information Processing) Java (eclipse ) Hello World! eclipse Java 1 3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello
PowerPoint Presentation
ソフトウェア演習 B GUI を持つ Java プログラムの 設計と実装 4.1 例題 :GUI を持った電卓を作ろう プロジェクトCalculator パッケージ名 :example ソースファイル : Calculator.java GUI.java EventProcessor.java 2 4.2 GUI とイベント処理 GUI の構成 :Swing GUI の場合 フレーム JFrame:
メディプロ1 Javaプログラミング補足資料.ppt
メディアプロジェクト演習 1 Javaプログラミング補足資料 l Javaとは l JavaScript と Java 言語の違い l オブジェクト指向 l コンストラクタ l 継承 抽象クラス 本資料内のページ番号は, 以下の参考書のページを引用している高橋麻奈 : やさしい Java, ソフトバンククリエイティブ (2,625 円 ) はじめに l プログラミング言語とは? l オブジェクト指向とは?
Javaの作成の前に
メディアプロジェクト演習 1 参考資料 Javaとは JavaScript と Java 言語の違い オブジェクト指向 コンストラクタ サーブレット 本資料内のページ番号は, 以下の参考書のページを引用している 高橋麻奈 : やさしい Java, ソフトバンククリエイティブ (2,625 円 ) はじめに プログラミング言語とは? オブジェクト指向とは? Java 言語とは? JavaとJavaScriptの違いとは?
アルゴリズムとデータ構造1
1 2005 7 22 22 (sakai.keiichi@kochi [email protected]) http://www.info.kochi-tech.ac.jp/k1sakai/lecture/alg/2005/index.html tech.ac.jp/k1sakai/lecture/alg/2005/index.html f(0) = 1, f(x) =
WTM2019SingleSignOn
[Java 開発者向け ] シングルサインオンへの対応 - Java カスタマイズコードの書き方 1/45 OUTLINE Spring Security Spring Security を使った認証の仕組み Spring Security を使ったシングル サインオン 2/45 Spring Security 3/45 Spring Security とは アプリケーションのセキュリティを高めるためのフレームワーク
Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def
Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の まで処理しますどれにも一致致しない場合 default: から直後の まで処理します 式の結果 ラベル 定数 整数または文字 (byte, short, int,
Apache Tomcatにおけるクロスサイトリクエストフォージェリ(CSRF)保護メカニズム回避の脆弱性
Japan Computer Emergency Response Team Coordination Center 電子署名者 Japan Computer Emergency Response Team Coordination Center DN c=jp, st=tokyo, l=chiyoda-ku, [email protected], o=japan Computer
intra-mart Accel Platform — イベントナビゲータ 開発ガイド 初版
Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する
文字列操作と正規表現
文字列操作と正規表現 オブジェクト指向プログラミング特論 2018 年度只木進一 : 工学系研究科 2 文字列と文字列クラス 0 個以上の長さの文字の列 Java では String クラス 操作 文字列を作る 連結する 文字列中に文字列を探す 文字列中の文字列を置き換える 部分文字列を得る 3 String クラス 文字列を保持するクラス 文字列は定数であることに注意 比較に注意 == : オブジェクトとしての同等性
8 if switch for while do while 2
(Basic Theory of Information Processing) ( ) if for while break continue 1 8 if switch for while do while 2 8.1 if (p.52) 8.1.1 if 1 if ( ) 2; 3 1 true 2 3 false 2 3 3 8.1.2 if-else (p.54) if ( ) 1; else
目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測
泡立ち法とその実装 計算機アルゴリズム特論 :2017 年度只木進一 目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測 Comparable インターフェイ ス クラスインスタンスが比較可能であることを示す Int compareto() メソッドを実装 Integer Double String などには実装済み public
メソッドのまとめ
メソッド (4) 擬似コードテスト技法 http://java.cis.k.hosei.ac.jp/ 授業の前に自己点検以下のことがらを友達に説明できますか? メソッドの宣言とは 起動とは何ですか メソッドの宣言はどのように書きますか メソッドの宣言はどこに置きますか メソッドの起動はどのようにしますか メソッドの仮引数 実引数 戻り値とは何ですか メソッドの起動にあたって実引数はどのようにして仮引数に渡されますか
2
プログラミング応用演習 b 10 月 5 日演習課題 2016/10/05 PAb 演習課題 プログラム仕様書作成課題 課題クラスを読み 次に示すクラスの仕様書を完成させよ なお 仕様書は クラス 1 つに付き 1 つ作成す る 加えて 図 1 のようなクラス継承の模式図を作成せよ < クラス名 のプログラム仕様書 > 作成者 : 学籍番号 名前 (1) クラスクラス名 : クラス名 説明 : クラスが何を表現しているか
