タグ

javaに関するshunkeenのブックマーク (4)

  • JavaのSealed Classesについて

    この記事は GMOアドマーケティング Advent Calendar 2021 13日目の記事です。 GMOアドマーケティングのT.Nです。 Java 17でSealed ClassesがPreviewからStandardになりました。 弊社でも先日一部のプロダクトをJava 17にバージョンアップしたので、 今後Sealed Classesを活用していけるように記事にまとめました。 今回の記事は全体的にJEP 409 を参考にしています。 Sealed Classesとは 簡単に説明すると、 extends、implementsできるクラスを制限するための仕組みです。 sealed、non-sealed、permitsという新しい文法を使って実現できます。 Sealed Classesを活用することで、 クラスの階層でドメイン知識を表現しやすくなります。 sealedをつけたクラス、イン

    JavaのSealed Classesについて
    shunkeen
    shunkeen 2021/12/13
    “recordと組み合わせた場合は、代数的データ型と呼ばれる”/Javaのsealedで直和、recordで直積。ADTの構築ができるようになったから、分解を担うパターンマッチが将来的には導入されるのかな?
  • 緊急レベルのJava「Log4j」脆弱性、多くのシステムに影響する恐れ(山口健太) - エキスパート - Yahoo!ニュース

    米国時間の12月9日ごろから、Java用のログ出力ライブラリ「Apache Log4j」におけるリモートコード実行の脆弱性が話題になっています。広く普及しているライブラリに致命的な問題が見つかったことで、影響範囲の大きさが心配されます。 Log4jJavaプログラムからログを出力するときに使われる定番のライブラリです。開発者がLog4jを使ってログを出力していれば、運用担当者は設定ファイルを利用してログの出力先をファイルからメール送信に変えるといったことが可能になります。 最初のバージョンがリリースされたのは2001年となっており、筆者の記憶では少なくとも2004年くらいにはJavaによる業務システムの案件で使っていました。他のプログラミング言語にも似たような名前で移植されています。 今回の脆弱性(CVE-2021-44228)は2014年に出たバージョン2以降が対象となっており、現在稼

    緊急レベルのJava「Log4j」脆弱性、多くのシステムに影響する恐れ(山口健太) - エキスパート - Yahoo!ニュース
    shunkeen
    shunkeen 2021/12/11
    “今回の脆弱性を抱えたLog4jは7年前から提供”、”開発者の不在などで保守が難しいものも少なくないとみられ、どこまで被害が拡大するかは予測困難”
  • GitHub - YfryTchsGD/Log4jAttackSurface

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - YfryTchsGD/Log4jAttackSurface
    shunkeen
    shunkeen 2021/12/11
    結構なサイトが脆弱性突かれてる。。。Javaのログ出力ライブラリ「Log4j」のリモートコード実行の脆弱性。いや、本当によく今まで気づかれなかったなぁ
  • log4jの脆弱性について

    log4jとはJava用のloggingライブラリだ。loggingライブラリというのはログとして記録すべき文字列を受け取り、それをどこかに出力するものだ。文字列の中身を通常のloggingライブラリは気にしない。 log4jが通常のloggingライブラリと違うのは、文字列の中身を見て、一部の文字列を変数とみなして置換することだ。これはlog4jのドキュメントではlookupと呼ばれている。 Log4jLog4j 2 Lookups 例えばプログラムを実行中のJava runtimeのバージョンをログに含めたい場合は、"Java Runtime: ${java:runtime}"などとすると、"Java Runtgime: Java(TM) SE Runtime Environment (build 1.7.0_67-b01) from Oracle Corporation"などの

    shunkeen
    shunkeen 2021/12/11
    “URLに.を含めることにより、lg4jは任意のリモートのLDAPサーバーからjava classファイルをダウンロードして読み込んでしまう”/制御不能な柔軟性が牙を剥いてる🐲怖い
  • 1